Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
8 k$ q3 d5 g2 T; Y+ C, O( g- ~! A; w. _- }9 \
& P3 i! A: V) c, j- U" `
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
4 ~. F2 o! L$ Z1 V6 P
+ ^! c0 K) T9 |3 T* t6 f) e7 Z8 y
! {* E5 ^4 n+ lДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.% x+ l' D. N/ u8 R- a
Здесь можно:
" k2 `' l, v; ]0 v* {
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.+ P' ^5 X* V, i( w* j- D( U
! u' h5 d2 Z* i4 o# ]% u
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?  ]+ j* Q3 d* `- X% [9 e
Астралия ?# n1 B$ a) `% x8 C9 Q

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32* B* p* e! [0 ^" G, M
Можешь подробнее объяснить, почему мы проверяем значе ...

' m4 Q- m6 X0 C. O* u8 i9 jПривет, AlexCoder!7 F: G; Z6 M1 v4 \; m
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
6 {& Z4 r5 z/ V1 b4 \8 ^& p
1. Защита от некорректных данных- r- U+ i8 e6 C. ~, `  x
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.* \5 L" y, s- Y
Пример на основе Player.java из L2J_Mobius:
- k. D6 X% }6 E
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    ; l7 V) V8 R1 b3 n* e, `+ @# R
  2.     // Проверяем, что новый уровень больше 0
    4 b4 y0 h/ ]' R: W
  3.     if (newLevel > 0) {
    , f% {2 _: B" |/ X. U
  4.         this.level = newLevel;  // Устанавливаем новый уровень+ X& @4 {% C: b9 q' {
  5.     } else {3 c# l$ ]) _: V/ o, Y! _
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");' L3 J+ H. Y% N  C
  7.     }
    & Q+ X; k3 \) C& v- w  s0 d
  8. }
    # _7 B' a: A1 z: E
Скопировать код
Перевод и пояснение:
$ H* u6 `& z% Q5 msetLevel(int newLevel) — метод для установки уровня игрока.
4 d* [1 e2 ^5 O% |Мы проверяем, что новый уровень больше 0:
4 k& B% F- G8 }+ S: q1 k9 j
  1. if (newLevel > 0)
    , P* v$ z# {5 S: j( s
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).0 u5 K2 X3 s0 }' _
Если условие выполняется, уровень устанавливается
% b% V- Q) O6 ~* e6 F9 ?7 x+ v( q
  1. this.level = newLevel;
      d: n4 n# U$ r) A  |& S, c- y9 A
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:. |, L+ y% q2 t

2 K' t% u" `$ h. n9 ^( v
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");5 z# B0 M6 e! Y: u
Скопировать код
2. Логика игрового процесса' y7 L5 u+ u0 A
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
8 z) q# q# z* r: fИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
2 [7 ~; T; N4 N3 o5 l  ]
. o9 h9 p3 n7 s) UP.S.; u/ f4 h$ m7 r- X" o
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
+ V" I* [! o7 I' y! J9 p0 `
3 E. d& {  h" ?) Z( W1 }# v4 s# l: Y* Y' g: k" M6 r& b" G1 k" a1 `
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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