Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
" `; I5 `+ a! Q' A% [. e1 G* s8 ^2 T

0 M$ \% v; O- q6 l* TШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
! ]# @+ A( y$ K* T& h6 V  N5 x6 w& E9 a. v' M# E% x1 J

2 r  ~2 d+ H- S% m/ j" Y6 ?Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
1 y: u. n4 x! i+ r. aЗдесь можно:
' e7 T  S/ W; }6 I5 B! r: E
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.( s) J$ e% y8 X# J0 f! a
+ l8 y$ [8 q! k% E0 t5 |
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
! A! r* {- d6 |Астралия ?0 L. d4 _" m9 c2 Q1 T5 |( P7 J: q# z

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:327 A6 u) z) S8 M, W
Можешь подробнее объяснить, почему мы проверяем значе ...

/ P% [% C9 m0 N4 n7 }" {$ YПривет, AlexCoder!6 d1 f8 `' N' G; X4 z6 Z. r4 f
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
) i7 e* u3 c4 K' a
1. Защита от некорректных данных
* m, `* ~5 E, ~6 dЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.% l& y* Z( o5 _$ S* K
Пример на основе Player.java из L2J_Mobius:9 M* f: h$ m3 K! A0 b, u
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    * C) A; b7 n$ T7 U6 o
  2.     // Проверяем, что новый уровень больше 0/ _+ ]; C9 g0 r3 r3 p! F8 Q
  3.     if (newLevel > 0) {1 R5 M" p  C& C
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    ' w6 s- w; _2 ^# M. E' r
  5.     } else {! z: ~+ j; T$ R, _( {0 t4 g/ f
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");) B, f1 T- `' \$ C# _
  7.     }$ _: P6 N( N% b9 b8 h- e' v% s
  8. }/ T  B. i  \! T! B
Скопировать код
Перевод и пояснение:
0 ?/ g; }0 g& _setLevel(int newLevel) — метод для установки уровня игрока.& Y5 j' w0 e6 r8 |) Z$ a/ C) c4 {8 n: \
Мы проверяем, что новый уровень больше 0:
* c5 f; `: D' D0 h( i9 Q
  1. if (newLevel > 0)
    * n/ M+ P: ~) Y2 c/ q6 ^
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых)." A- \$ z' x7 ^  E# L. k
Если условие выполняется, уровень устанавливается& E8 g8 ]" Q4 v2 n- b7 l4 s! N
  1. this.level = newLevel;' J4 Y2 L5 d; o* r: E0 T
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:! A8 f! M# m* J) I+ Z1 t9 _  a& ^3 n

. E1 F  I, K. M/ p! z- j. z! X
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");5 N$ V% B5 q# w5 D/ p) S
Скопировать код
2. Логика игрового процесса$ F' m  i' p7 b- ]% ?& p
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
* x& L* z( @+ ~Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
* T2 M5 `. b8 M7 _7 a- M) `, u
, u- @- Z' X: n, A" @9 IP.S.$ E# t* v; ^0 K4 @
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?/ J9 l2 G- o- v4 a9 t1 S

, I: `; q# K4 D1 Y. ~5 l
8 P1 N% Q7 ]% [1 F; y, ?
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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