Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
5 S  X# `5 \( r( r; J
7 H* n' b9 |- C5 O: w6 w( h% Z
* t. S/ y2 E3 `6 P9 D' tШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
% O  s* \+ Z1 K5 X) u9 H- q$ Q" V
. @: C8 }3 w  t! Y5 k9 l( h+ l! Y' T& W0 g
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
9 j& N* n- e) d' x& M7 s  q2 |Здесь можно:
" o0 W" ]+ @% `2 o( C
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.5 D. l4 i% h3 x1 k. n
3 t4 l1 W. K, x) O
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?- r# X+ m' J# S7 p4 D2 M& r
Астралия ?) j: N9 m. }* k7 ~- m: s

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:325 _  L1 h  J+ i! k: {
Можешь подробнее объяснить, почему мы проверяем значе ...
( G- g: p1 c( Y7 v% J1 @
Привет, AlexCoder!
7 E# m  c0 K* z, @3 qДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса./ L5 K7 G2 A1 Y3 L1 K! e

1. Защита от некорректных данных
6 f; h/ i# W" r, U3 j2 uЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
* y; t( T' t. f( Q! U# IПример на основе Player.java из L2J_Mobius:, t% d) \* r3 g7 |% T  k( ?
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    . S4 r0 ^6 n$ C
  2.     // Проверяем, что новый уровень больше 0% [: `0 \/ ~$ a/ ?1 l
  3.     if (newLevel > 0) {
    ; l. v5 j5 _/ L1 M$ `. Q9 g
  4.         this.level = newLevel;  // Устанавливаем новый уровень+ a, @7 ~; x9 E, U) t
  5.     } else {
    ; O# U$ g+ v! L( `7 ~
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");; `$ M; i8 p8 W, y  Z, \, g. h
  7.     }
    ( Z$ V% ^' u  |4 Y( G. z
  8. }
    5 ^+ F- C- X9 ^
Скопировать код
Перевод и пояснение:
1 z6 ]; T" C; s2 _setLevel(int newLevel) — метод для установки уровня игрока.
- T# P/ R0 p7 O$ C6 l' K+ a) m( [Мы проверяем, что новый уровень больше 0:1 |4 [+ P7 m6 d0 S
  1. if (newLevel > 0)2 ?/ B( T( {% F" J
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).7 G5 p: X) i1 l+ H  P' C3 d
Если условие выполняется, уровень устанавливается! O3 }! W- T+ H# G: @6 Q
  1. this.level = newLevel;
    1 d  X8 q% g* U6 e" |+ P
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
" |" j" n" @1 t8 I
: J9 {% \1 M( W+ m3 D
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");( q9 F( E: _+ R. S
Скопировать код
2. Логика игрового процесса5 u5 `! f8 f8 T  R# ?. D
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.* |, C. v# _% W' L
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
  T6 t: ^" h% r, }/ S3 R8 X3 i% A( E, E: `
P.S.
) m2 n5 N: a$ N# k! vДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?1 ^: A- t8 u/ e
0 k' S. K; [9 C* d

8 c, E* J0 R) P
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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