Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
) s& d* j* \' F! F2 z, g2 U7 f: N  o4 I  o/ k' j6 G5 M. ]
# P! J# ~8 W! v, H
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
' h% W0 u8 F! C/ G& d9 M! N/ T+ e, ^- ^, ?4 _/ O3 \0 X/ |7 F

8 O% W. d' S. `# p! b3 FДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
% y. V0 c5 Q: @8 CЗдесь можно:
! Y, D+ D& a' j+ Y
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    + k+ M8 n: l) |

- ^  S0 f8 N5 h/ O0 e  aНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
" M+ Y& w, R1 FАстралия ?7 E- c# |" @$ |. `  w4 R8 a

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32* |' q& s9 R8 J2 {4 F# @5 `
Можешь подробнее объяснить, почему мы проверяем значе ...

! u& e$ \8 Y" @6 Y7 Y, _) FПривет, AlexCoder!
; \/ o: s0 p0 P; uДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.0 H' k4 \% y5 F/ n0 f2 X' n& m

1. Защита от некорректных данных2 V6 O2 L, u) E7 u0 w- r
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
2 J( y7 C! b  p# @' _3 m4 @Пример на основе Player.java из L2J_Mobius:
  q7 e* _( d9 U7 ~& a2 q
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    & f8 a' A, D% f8 Y; `0 a* `% k
  2.     // Проверяем, что новый уровень больше 0* A0 V8 f' t8 Z" k- G/ z9 E1 x
  3.     if (newLevel > 0) {& V0 }' G8 f! X- W: \
  4.         this.level = newLevel;  // Устанавливаем новый уровень# T# ]4 f; B8 U# @
  5.     } else {
    6 G' P% [6 A8 A; m% r
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    $ H# X% a5 P8 s% f( Q. j* O
  7.     }8 M7 I) K( y- w# k
  8. }: f1 r) p) P5 c7 C
Скопировать код
Перевод и пояснение:+ P0 \' A9 {$ P: \6 {$ j6 e2 l
setLevel(int newLevel) — метод для установки уровня игрока.8 j) [5 U5 a1 z7 m' N
Мы проверяем, что новый уровень больше 0:. J! ?  Y# [  h& @) A- J
  1. if (newLevel > 0)3 B1 v4 s: `, H, w
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).1 P: g3 J: S2 K* U( X( c2 m
Если условие выполняется, уровень устанавливается
% d0 c% F$ J! D$ `! r9 i8 Z/ R) g
  1. this.level = newLevel;5 R7 }+ E# I0 _: s
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
$ J& w3 q  h" e3 V5 @
; q4 N$ X' S) \. R- Z* R  Z! e% @
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    7 i; O9 E5 a9 @% P- Y; e* j! s
Скопировать код
2. Логика игрового процесса- i* q- {. q' D! E1 ]! K3 |- n# c: i2 `
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
' @' ^! W- w$ z4 X- Y, U6 _Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.: d; h7 ]& G: R6 A

! V& o9 A4 o) u8 U  XP.S.
) \8 t! s2 D( J  iДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?$ z( Y: R6 [% F4 G$ F

" y2 [1 ?* p, G
: {& d" }. d! h: A+ a
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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