Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 " F& c0 ]# y8 \; n8 A% R. a% }  Q/ W

3 p# H8 y  M! O: X1 d* P
9 j* j. J9 m3 I0 }( h7 DШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
. B7 o5 d4 z1 N0 ?8 Z$ e/ R6 o
. o+ j. c/ V. X2 V8 I+ ]# P: ^' K( q) c! d5 C
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.. `8 @- y% X8 l! C; D
Здесь можно:
8 C* x( d8 v8 y) [$ o% a' F+ y7 W
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.+ [+ o1 l" r$ \# V

3 w+ w0 S- S" f: {/ {Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
) O" M7 z6 V& tАстралия ?9 j" Y/ M, x" B; i( t

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:325 i" H8 i2 l5 |
Можешь подробнее объяснить, почему мы проверяем значе ...
' U- }5 q" t1 B  A9 t& d3 K
Привет, AlexCoder!
) j  F. r5 [! j3 JДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.$ d( `+ K/ V* H- r

1. Защита от некорректных данных
, w. t  o  c9 {) V% }Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
, v- Y, W4 F- P0 j; M2 KПример на основе Player.java из L2J_Mobius:: L) I+ G; p, R! t4 W
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    6 K5 s# ~$ Z$ H, D' K3 K7 U+ c
  2.     // Проверяем, что новый уровень больше 0- K' g% H5 F; d0 R
  3.     if (newLevel > 0) {
    6 j$ V4 X. Z  f( j* [! W% x
  4.         this.level = newLevel;  // Устанавливаем новый уровень7 q6 o) _6 y% u) C; k
  5.     } else {! ]/ m3 t' j* I
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    : j7 `& i) _) i( i
  7.     }
    - W$ o0 b/ R  U3 Y; \
  8. }  `2 p+ s! V6 e% v; C# t; E" q7 S
Скопировать код
Перевод и пояснение:
# J# _1 P5 [2 P) C; s) YsetLevel(int newLevel) — метод для установки уровня игрока.; P. `7 s  T2 d) N
Мы проверяем, что новый уровень больше 0:& s; w6 i; y. l1 x' x1 t
  1. if (newLevel > 0)
    . a. d& u- O" b; V6 @+ y# z
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
5 J& @) p* G. u$ ?Если условие выполняется, уровень устанавливается2 ?9 A+ a: x* a
  1. this.level = newLevel;
    6 V; U$ i4 i; X& F! k" e
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:1 H" X3 [, O' i3 |

0 }6 R% o$ Y5 I( [! c
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    9 q- [3 ~% x- x8 u& W; p, L
Скопировать код
2. Логика игрового процесса9 C* y+ p# C- r5 B$ J
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.. g( j# Z: }$ p1 n# V) l6 N
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
5 m3 y6 l# {. L# T, b  C1 d! q. t5 C
5 i0 ^. o" z* H5 P5 tP.S.
0 d4 Y/ O! x' H1 g3 tДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?9 _! X( g9 q$ \, V/ E3 j" J: }
3 _5 F! |. b$ ]6 ~2 @4 |

! l: r3 f) P3 v9 a* d
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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