Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
* \9 _* a; B/ Y4 ^  f4 @" J2 c7 [* S6 Y# f: l

  {, `0 y0 _6 v% b% Q- m+ j' u5 GШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
# ?4 C7 A1 ?0 R' {7 E* }$ a( {; K8 u  c

7 r) g0 ^4 _% o! M3 tДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.% w; g$ H: M% q! o6 e6 H
Здесь можно:
6 G/ z/ E6 i# o( I! x
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.+ ]* {! i6 U* p4 \
+ K+ T' V# {8 o3 k% V
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
/ ?& d7 Z8 W  yАстралия ?- [0 l6 c9 e2 y  c* G; t

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:328 F: E' d6 Y. J+ X: ]* v
Можешь подробнее объяснить, почему мы проверяем значе ...

, ^! R" {6 [: F% m3 |, D) {Привет, AlexCoder!
4 D6 x7 T6 i2 ]; i6 j6 JДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
$ k. d. ?1 t% O8 T; @2 F
1. Защита от некорректных данных4 n" z. g! D: g1 k& C
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
) H. T6 l) M' o9 TПример на основе Player.java из L2J_Mobius:
: |  r- x  V( w% C! ]' o
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)( c. G0 K* ]6 O1 s3 {% ^& o8 z
  2.     // Проверяем, что новый уровень больше 00 N) f8 o& {7 M& ~( B# {) m/ C
  3.     if (newLevel > 0) {
    3 ~6 L' k% i" C. B6 r# U
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    3 O5 ~# w, e% C/ m
  5.     } else {3 r3 s( i1 A  \6 N
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    & H4 T, S, F6 c1 A
  7.     }
    9 M# |0 [9 g- Z& Q& l( z* B# B  e
  8. }
    : e; n$ |% H1 A
Скопировать код
Перевод и пояснение:. F' w' W& d' o; n
setLevel(int newLevel) — метод для установки уровня игрока.9 z7 x2 t' E. f) ~. z& d% w1 O- {
Мы проверяем, что новый уровень больше 0:' k3 \4 z! W: ]" D  `
  1. if (newLevel > 0)  G' q6 B* |( _% g8 N
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых)./ X1 E, O; a3 m* o( K3 T
Если условие выполняется, уровень устанавливается
  l8 _$ Y; u. M6 x+ E
  1. this.level = newLevel;
    % H9 [, p3 u7 L$ f# r$ t# n+ T
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
8 f. n% |& u" \+ B0 ]
1 K' M( y7 H  c. t/ @
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    7 _& X: e. y: R3 R% c3 i5 P# E
Скопировать код
2. Логика игрового процесса
8 p; c8 Q5 O/ [* ]; J" {Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
) m: i- K6 A1 PИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.% a' Y; ^2 |6 J, y, J; i  m
$ J# Y) W0 Y! V+ N
P.S.
: F6 B8 a6 [" a  }8 c/ UДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
+ x+ I1 r2 m$ V, y+ G) q# A$ @3 S' X: M" C
7 J7 Y- g' e# B) S6 O
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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