Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
& ^  m! S1 b% T7 j0 ~% _' [
! r3 k8 H' @3 F+ b
9 O8 R$ b3 i* Y0 x  xШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius, D9 m; c7 H% e+ t, [& s

6 ~: `1 ~5 M/ @% q) {1 r% [: [( _
2 E  d+ m2 L+ J* g' @! J: NДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.3 _4 g* e8 P: ?' a
Здесь можно:
3 w( W  A1 N( `0 Q
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.5 R" Z4 |7 \. n/ P

6 @# ]! m& F2 h) w% m+ }2 oНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
9 i; _' L: w, Q6 hАстралия ?& i6 o9 k3 w* S2 T- i

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
2 V7 W* v. M5 Z9 B) }4 eМожешь подробнее объяснить, почему мы проверяем значе ...
1 R! H% O: D/ O; V2 I) x" O
Привет, AlexCoder!
  Q/ S( {- b5 }Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
6 y$ M2 e' Q# S3 R
1. Защита от некорректных данных1 ^- m4 v) @0 Q
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока." {+ O1 h! U& }/ ^" V( a# d
Пример на основе Player.java из L2J_Mobius:+ W; }: ]8 q+ }6 o' ?
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    . y; e& G4 M' e& m: Y* T
  2.     // Проверяем, что новый уровень больше 0
    ' j8 w6 s- s4 C
  3.     if (newLevel > 0) {) g7 a( Y9 B8 T: T' Q* N6 V
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    9 B6 o2 e) n' y7 }0 a- Q
  5.     } else {
    ( z0 C1 ~# q$ s
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");5 S& j0 y. X+ O7 N& N/ V
  7.     }6 c4 [  n; }2 R7 d* ^& H# a+ v, [
  8. }
    $ m9 W  s8 }' |  l9 D5 L8 T
Скопировать код
Перевод и пояснение:
& L) i. l4 Z  N/ s( \; nsetLevel(int newLevel) — метод для установки уровня игрока.
( Y0 G5 q( ?2 R4 ~Мы проверяем, что новый уровень больше 0:, w4 z6 G8 {6 U# U* L' j) k
  1. if (newLevel > 0)
    ' g, ?0 @3 P; @; T5 K# M: p' e/ ~, z
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).) c, L% \' |' Z9 [! T
Если условие выполняется, уровень устанавливается
6 x  o: _7 }6 U" R4 G) `
  1. this.level = newLevel;3 W# i% x1 A" j. m3 c% H
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
( q7 `( \# e9 K2 w: _$ H3 U; L& \6 F, r2 b; \
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");& g& s- L! u% s$ ]9 ~1 n" H1 n
Скопировать код
2. Логика игрового процесса
/ i1 J& t+ R' \3 ^; {Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
  L, |% z5 T2 K7 JИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
6 t7 S, w. A; N, Y/ }
+ M+ f* K- V7 ^; Y! |7 ]+ NP.S.
7 `* L4 y* v1 j1 a& _+ BДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
  e, [# q6 ^& ]) c8 v
$ a( h/ l+ o* z3 g8 R( S
6 r+ l( ^% h: X' T$ \
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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