Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
# n7 ]* {$ l3 y7 Z. U$ W* e
& n% d' @5 u9 L5 N* D: g, k  Q, K+ c7 G
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius6 |$ g- F$ N# ?

5 |# y! P% C# e* c+ O+ ]4 U
# w% x0 _- [( p4 i0 d& ZДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.1 {2 \( n  W# Y; M; H+ l/ I& y' u
Здесь можно:! e! k1 C8 E6 \' [" {
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.9 s1 J* V' E1 x  R9 j* c/ }

3 o$ J8 x% C! J4 `) c& ^Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
, N! Z9 Z/ \4 C  t- u' CАстралия ?& y2 p7 K) s: b

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
7 U) k) @( J1 L! m9 m7 LМожешь подробнее объяснить, почему мы проверяем значе ...
# X5 k! a/ d$ u1 V+ t2 m9 `, o0 B. e
Привет, AlexCoder!
7 y, @/ @7 Q9 p: t/ m( pДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.4 }3 f  D" h* z2 C

1. Защита от некорректных данных# w* N: v  k. L8 ^3 B6 m
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
$ `+ v* d- @& k4 `  gПример на основе Player.java из L2J_Mobius:
) I3 V9 {$ s, P
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    9 g& V  t+ h! L. i" o
  2.     // Проверяем, что новый уровень больше 0, g1 T' R4 d+ M+ g. S
  3.     if (newLevel > 0) {. i8 {' M9 q4 i, A8 x* h: l
  4.         this.level = newLevel;  // Устанавливаем новый уровень% U; Q. d2 d) U$ W
  5.     } else {$ [. A- f- }% j' i
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
      ]! C' I6 N' m! X* `
  7.     }) `- Z, K) ]) E" l# u8 O
  8. }
    * ?. P$ l$ v4 m  J; D1 w* j0 U
Скопировать код
Перевод и пояснение:
5 J3 P# {, q, G5 J, m& s9 NsetLevel(int newLevel) — метод для установки уровня игрока.% c5 ~! ^% c: w, m" L) X9 F
Мы проверяем, что новый уровень больше 0:& O" z0 f3 d" z* x  z% w
  1. if (newLevel > 0)$ m; Q; k% k9 j% G: w/ S$ f: w
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
7 G; E0 K% H, [+ \Если условие выполняется, уровень устанавливается
8 M5 ^2 ~5 S" m) j
  1. this.level = newLevel;% q' I5 y9 X- e0 @8 S0 d3 }' s6 |' ~* |
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
1 f( U6 K, z; e) X- c% t5 {; ~
; i; ^! G' h  b, }
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");- E% a& I. ~, [  p; I
Скопировать код
2. Логика игрового процесса; q& a3 S. y* w$ w6 M) I
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.. Y1 M, i) ?, T* r
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.' j8 @7 T8 P' q, D

" G' u  n3 G! g% EP.S.
7 _3 g' A3 h  G% q9 q$ s) IДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?: F% `6 \' B7 |1 }* H) P
, K" r( |! x, ~, I
9 H) Z$ ^5 ?1 I
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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