Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 8 B0 B; w8 l* s; I
1 }( g* x% m* W" A0 x, O

) p: g5 ^& E, Y% h1 I9 @Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
9 v: W9 ^' P$ M1 |) f# `7 _- L
8 m, J6 i8 ]+ I
  n# E1 p0 O1 Z/ _/ B9 [Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.+ i" W- t/ A1 u5 |, @/ h' n4 W& J
Здесь можно:* a# f4 S. ]( P& G' k" @% v6 O
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    7 S) T+ R* q2 L) X; o8 T5 q
  T9 ^" @; c  k
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
0 g0 C3 H( m% J" B" v6 P2 X. [Астралия ?
. }9 F" `4 G7 r: Z, x) n

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:325 N- Y% j; s% ]& d, i
Можешь подробнее объяснить, почему мы проверяем значе ...

3 q" i* s9 b4 P; K  eПривет, AlexCoder!# S% `# h; p. Z- p
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
$ s; i/ Z0 I  ~" Z* J  }
1. Защита от некорректных данных. n  D8 I& M- t3 s
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока./ s% ~. w8 L$ X1 l
Пример на основе Player.java из L2J_Mobius:; P; \+ v6 Z" [1 O+ }
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    $ b2 b* c! E% w* T5 j* N
  2.     // Проверяем, что новый уровень больше 0
    1 `* _7 q/ Y! }+ p' d" M
  3.     if (newLevel > 0) {: g4 B# U# w$ p1 ~; ^
  4.         this.level = newLevel;  // Устанавливаем новый уровень4 P6 z: w( t* @; V2 P
  5.     } else {
    0 e9 L3 I9 s% W2 j8 S, y1 L8 t& a% F" J
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");6 V5 C, ^% v! R( O3 s, ]
  7.     }
    . b! X2 h; }2 D/ v4 b! {$ |$ E
  8. }$ G; }5 [0 g' l, ]3 }3 F+ @5 X/ m
Скопировать код
Перевод и пояснение:8 [2 Q) y  |; t5 a9 ^
setLevel(int newLevel) — метод для установки уровня игрока./ W7 e, c, S% K, d0 T, o
Мы проверяем, что новый уровень больше 0:
9 ]$ M: G: B% I  ]% m# e( E8 h
  1. if (newLevel > 0)
    5 N! C1 A* w0 J. p
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).$ U6 M2 V! j! ~1 ?& f# T
Если условие выполняется, уровень устанавливается. x2 N& v% ^1 u+ ]- [4 B
  1. this.level = newLevel;9 m6 D. h4 |% ~  ^1 \/ i" I
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:$ {& c, k. t  K% Y0 {
, A' \, n; h; S7 y7 h5 C0 b
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    1 u9 S1 G2 n; q( [% Z+ C' u" r
Скопировать код
2. Логика игрового процесса
9 j( L; r! T. a2 {$ _1 qПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
5 d1 }( F3 j+ @$ mИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
. }) C' v' E3 e6 U: k( {+ }0 s5 r& O5 z, k, @7 H  {+ s
P.S.
- N, F; O+ O6 b! k* U: fДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
) q0 w. x0 W: r; @
5 O8 x, D  B: C' Z, o
) p0 i* C1 [% f
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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