Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 # e4 `2 e+ `+ a" T" ?
% c7 M- ]: _$ ^5 a" \- j
/ m2 d9 c/ Q& ]
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
# m# u+ C8 u# Z- {- A4 i& K4 S2 \8 T' f

. c! W" |7 k* g4 ~7 @Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
2 I! r8 Z) t0 _$ c+ i# J1 PЗдесь можно:2 Z, E# Y. l# j
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    7 Z3 _- `7 Z5 _* [- |
( Z' ^& c' R, E- j' \3 E
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
4 L4 f5 l5 n0 uАстралия ?" L6 T3 W* d' G1 p. B" ?& b

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
9 {* Y. o3 C" l9 i$ xМожешь подробнее объяснить, почему мы проверяем значе ...

# X; f7 @% x. B+ m( WПривет, AlexCoder!# q- e) D* n. F! c" n+ P+ ]
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
* C" k" }- U3 ], }8 J# K# |
1. Защита от некорректных данных
* ~* x/ x. U7 R$ l4 @: H* lЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.' a. n+ f4 n3 {4 G% |
Пример на основе Player.java из L2J_Mobius:
! b# r5 a& E% S. C+ p2 L
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    8 ]5 t4 x1 x# o! |) a& T
  2.     // Проверяем, что новый уровень больше 0
    # @* q2 T4 D! T2 J5 a6 {0 h
  3.     if (newLevel > 0) {% y4 n, a2 n. m) V* s) j: U
  4.         this.level = newLevel;  // Устанавливаем новый уровень/ L2 L: z6 e: c3 Q% H; y
  5.     } else {
      p  ^: ]/ R7 W3 [
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    ; I* P2 g0 ?- q1 F( V
  7.     }
    ' B' G% g, T% N
  8. }) F3 k+ E9 e6 b
Скопировать код
Перевод и пояснение:
2 n$ e) A' Y' Y' }- bsetLevel(int newLevel) — метод для установки уровня игрока.8 U$ W( n0 G( L
Мы проверяем, что новый уровень больше 0:
3 b$ p) R) I) y5 ?5 J
  1. if (newLevel > 0)
    6 v; n0 s3 A1 J* I  I
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).3 z( s; ^* j- l/ }0 C" q  g, Y* m% d4 F
Если условие выполняется, уровень устанавливается/ D, O# f  U3 ]/ p4 v* d& A
  1. this.level = newLevel;1 _6 E4 |8 o# C) ?1 w
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:% L+ V& H2 U2 ~  h" H  d
8 Q' ]  h4 u( O) s4 }; I. D
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");& N) T7 f$ e8 ~& ^! U
Скопировать код
2. Логика игрового процесса
" a7 G3 r# x: |; BПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
7 \2 U* t+ m# {Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
1 ^3 [. ?. S% D; t2 \+ _; a. B' Z3 Q% R2 d2 \/ k1 w7 |8 C
P.S.
+ m) A" f6 C" M9 NДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?" J/ P: d3 x' J

% @2 U3 i* K2 a9 q4 z6 i& |* x# x6 V  G8 e
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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