Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
' D% L2 \/ H: y' E& Z
( D9 t) Y5 n# b8 v, P: Y' ~
; v: D. i3 ~6 t! \Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius' [" U2 m+ x$ x! s

( `7 \5 J; |! X3 `: I" C) [5 U$ ?! d5 `5 g' q+ e
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
- `: N; q2 t0 t, y, }) F- KЗдесь можно:7 j* b8 N, f, ?9 U2 z
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
      v; W) f  D- S$ ?0 f

  Y$ f: g, ^6 {3 W" oНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?8 ~8 b! c" s- Q. |% N- ~
Астралия ?4 X7 S* v- ?" ?6 }) d+ x5 E+ t

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
$ F/ H7 u9 |& x+ W& w$ |Можешь подробнее объяснить, почему мы проверяем значе ...

+ i; Y+ Q/ m& H/ w. Q" LПривет, AlexCoder!+ L! Q! l" H/ q8 _( J
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
" C4 Q  f" ~. b$ z
1. Защита от некорректных данных1 b2 v8 s# G6 n4 y/ j) ~
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
0 B8 ?* E$ t0 [% R& K' j  n& |Пример на основе Player.java из L2J_Mobius:% j) I3 |5 F( ~& z
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)( ]& G+ X4 L. _- s2 B
  2.     // Проверяем, что новый уровень больше 08 p* F1 n  Y) t1 d. G* ]7 K
  3.     if (newLevel > 0) {3 N- `0 D5 }7 `, A, r
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    " Z" o  X3 p% p- a: C5 i
  5.     } else {" H- T% C/ M2 C" |
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");4 U# ~5 f! y1 L0 c! x2 v4 A
  7.     }
    ( ]. f8 Q9 l; R; F
  8. }$ r. w/ P0 F, i) M/ I  Y5 k
Скопировать код
Перевод и пояснение:5 ]3 F- r! K/ X; R( }  @* H* b) k0 a
setLevel(int newLevel) — метод для установки уровня игрока.
" C2 F) U1 k% p/ C" MМы проверяем, что новый уровень больше 0:9 K8 i: w9 `# `4 R+ F. T/ E9 F7 u
  1. if (newLevel > 0)
    6 t- T  B/ V* Y: I- A( H
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
+ g& d/ o  F+ V0 G/ U6 A' G: {6 LЕсли условие выполняется, уровень устанавливается
( A0 ^, N; A5 F1 W  A) C
  1. this.level = newLevel;
    . f! d, t0 n7 y/ B
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
7 W7 L  N1 G. D
/ q: {; o5 Q, a+ t* G6 d6 Q
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");  Y' j" L- d- x
Скопировать код
2. Логика игрового процесса6 K, w: `% J# y' W5 M
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.) {+ i4 ?# {' \" h
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.' M2 m7 ]' u  M% F5 Y

% ~0 ~) b( v; o1 A! Y  uP.S.8 q2 j8 B' k- [6 Y+ p6 J
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?1 L% o1 J7 S: y

$ k: `1 S% R+ ]3 X+ i( n) E7 `* \, u2 L4 y+ Y
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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