Top.Mail.Ru

[Руководство по Java для L2J] Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius

[Скопировать ссылку]
Astraliya Опубликовано 2024-10-17 21:33:27 | Показать все сообщения |Режим чтения Распечатать Назад Вперед

Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!

Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 $ t/ d) k* _: e$ J
" `' U8 _) j6 y4 O
2 F, C  K# @+ i  _6 d  q4 R" p
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
4 B# m7 u9 E- W% R* t, t, s( {( D/ ]  E+ s

6 l; p9 |" k9 J2 D" TДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC./ ?; V# ~- d! V' Z. C
Здесь можно:
  L. J% m2 D- S( i
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    8 h( t2 s  R/ ]2 l1 w9 ?) o0 \

$ E  }2 w7 h( k. M( a$ }# j$ Y3 zНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?. C9 z$ Y9 `& ]# `' X
Астралия ?
2 t! f+ W6 Q. @2 l

Сообщений в теме:2

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:323 _- Q) c: t, O9 Y3 x
Можешь подробнее объяснить, почему мы проверяем значе ...
, e7 A5 q/ j! j3 e' z1 h  p
Привет, AlexCoder!% J1 e5 m% j" z1 j9 t& F9 n  i
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.) v4 V2 F* b. J+ k

1. Защита от некорректных данных
4 i" V$ |- p% ]) Q* C& s7 F! CЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.2 j9 G0 a3 U# W% k
Пример на основе Player.java из L2J_Mobius:4 h- n7 u) p% d  W# F7 \, L
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень), e5 ]" ^( n5 Q! Z1 m, d! S; @
  2.     // Проверяем, что новый уровень больше 0
      v+ ]% a1 t( X+ {. H1 b1 s" `2 V
  3.     if (newLevel > 0) {
    0 D5 n* V0 E, l! ?
  4.         this.level = newLevel;  // Устанавливаем новый уровень% B) H/ @) G2 q) f5 V5 Z
  5.     } else {% J4 W6 _% A* \8 R' Z
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");6 L' X/ e( V- u7 k: F. l
  7.     }
    1 M" Z* m( L* u3 j
  8. }
    1 p1 Z1 \) T! w  p; ]# M1 Q
Скопировать код
Перевод и пояснение:! N4 C3 o5 \6 @- G
setLevel(int newLevel) — метод для установки уровня игрока.
! _# Z% L, Z0 x; E4 T- C5 T; F) {Мы проверяем, что новый уровень больше 0:! z+ L4 j  l& v, Y# S$ Y9 f
  1. if (newLevel > 0)
    . O; [2 X& M( P* H
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
8 a4 `- K$ S; z/ ^: o; {5 @: e6 t# {Если условие выполняется, уровень устанавливается' j6 @4 n( ~$ C' \
  1. this.level = newLevel;
    # @# j  I7 l2 R) {! h1 r
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:$ M* g0 q, S4 Y' q
* j7 d# I& `$ o! A5 h; b) E
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    - V' t3 o5 |- L' x
Скопировать код
2. Логика игрового процесса1 }. y9 ?: w4 _; m, X
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.( b2 O+ w- x/ J( v. e
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
& D0 \4 u# `0 L( Z& W2 b/ X& M7 h9 f- N
P.S.
6 a$ B1 S0 c7 K  ^" pДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?+ P1 n3 T) b- A# U0 T: t
2 s, O0 Y: u( K5 L; e9 P3 R1 o
* w4 N- p6 i) d( l; Y1 }
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

Правил начисления баллов

  • Выдающийся вклад

    Прилагайте постоянные усилия для процветания форума в течение длительного времени или много раз выдвигайте конструктивные предложения.
  • Авторитет сайта

    Участники, внесшие выдающийся вклад в работу форума

подписок0

подписчиков0

постов9

Опубликовать
Сектор творческих людей
Горячая линия

638638758

С понедельника по воскресенье с 9:00 до 23:00

Обратной связь

admin@artace.ru Онлайн

QR-код

Powered by Discuz! X3.5© 2001-2021 Comsenz Inc.