Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
' @) E; p. ]) S8 y* D
. Y. J# M& H! u
) k% z% k% c5 P. OШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius) R' s9 G: z0 q+ v( L; g+ j
4 @1 ]5 i0 Q8 s/ H) W6 U4 t0 h; Y$ T

  M  q" _7 ^/ T& C1 X8 OДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.4 |" X6 y3 W, P% ^7 |0 y
Здесь можно:9 I7 \' O# T$ v/ Q! Q
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.& x( e$ J- Y  }/ n: O

8 a6 B. Y! D6 G. oНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
9 ~8 @/ y4 y8 w  ?Астралия ?( M2 Y7 F: H& ]8 o2 g6 V

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
! t2 E. N  a, l4 pМожешь подробнее объяснить, почему мы проверяем значе ...

! g9 N! _! I3 ^. O, Z  ^- F. XПривет, AlexCoder!0 i) ]* |, g7 A3 T5 B4 G1 j
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.' y, g# T4 \( u' L: j

1. Защита от некорректных данных
" `8 r" e9 h2 [- sЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.8 [- R* }7 M2 Y
Пример на основе Player.java из L2J_Mobius:
2 |4 T5 @* s; K! I% x
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)( M6 Y1 R  ?/ Z, A3 Q
  2.     // Проверяем, что новый уровень больше 0
    6 ]4 v! I( G" S% t  `; C
  3.     if (newLevel > 0) {5 m9 u+ W1 S6 ^# o' o
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    0 u( L4 ~0 @! Q+ I* A& X/ r& Z- O1 u
  5.     } else {
    ! ~  C/ t9 @6 m% J: M& L
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");2 I, s( d& k2 f7 U$ S
  7.     }. p8 @8 o) D+ i9 p1 {2 D
  8. }
    + K6 c) g- m9 O- t) Q
Скопировать код
Перевод и пояснение:% N3 {( D' T" d6 n
setLevel(int newLevel) — метод для установки уровня игрока.
# O* Y6 ^- N7 W5 Z' v) CМы проверяем, что новый уровень больше 0:
& K' W, [; p. R5 ~1 D# E
  1. if (newLevel > 0)5 k- n- Y2 c1 n
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).* [/ g; G" K( i2 k0 u* a
Если условие выполняется, уровень устанавливается8 G: s6 f: |7 D  V
  1. this.level = newLevel;
    1 I: ~' ?8 }$ w" v
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
% h5 D  z/ S. ?- N: A/ w8 U
" S5 ?( f# Z5 ~3 M" n
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");" {9 h2 |3 ]8 r, L$ V) N
Скопировать код
2. Логика игрового процесса/ q  R. T9 y% p$ @# ]' n
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.; E9 h3 n4 p+ a
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.* h0 r2 S  \9 ~- F2 c" @1 ?' \* C+ m+ M

, @8 B/ z, Q9 u2 R4 Q9 YP.S.4 E2 O; C  L# E' J% D( r
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
, K! j& T4 u" `2 Q) f* ^, B$ q, \
+ k/ r+ }8 d& m# G; P; C: r( B
0 N8 z' ?2 G+ @' k
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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