Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
, k/ z* ]9 l% ^3 F) g4 n
# ~' i, V6 l7 t7 U0 l9 `: p7 m0 l% u  n( B
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
& W* k  C8 p  i  J/ f" |. r# v6 Q5 b) w" b- j( \
0 q: j; C; Y& X  B- r/ [* G* G1 b
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
. G& ~: C8 n" O8 P6 U1 W4 fЗдесь можно:
, J8 G' r6 v% y
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    3 }$ y- _+ a/ x8 B9 ]- m/ P

; e+ i6 Z( \1 m* t9 c% NНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄
5 d. j- R6 ?0 e9 l0 s1 p" QАстралия 🌟
; }" t9 h9 \+ s/ A$ p

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
( M5 M; P& \! J& ~1 i9 KМожешь подробнее объяснить, почему мы проверяем значе ...

% h- s( x# W5 x5 _$ e; |Привет, AlexCoder!
& [2 Z; `# S! K5 a% t) {; MДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.8 d3 X. I  U1 `' I

1. Защита от некорректных данных
* E9 Q9 A8 D2 h1 Q, l7 C) o& ZЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
5 U. L7 a) Q0 L0 w8 H7 MПример на основе Player.java из L2J_Mobius:7 ?/ u! |( p! e. F4 P6 o2 f6 N
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    " ]' U; }) M5 F6 q/ U; b3 u2 L/ L
  2.     // Проверяем, что новый уровень больше 0
    9 P7 ?0 S7 H+ y
  3.     if (newLevel > 0) {$ |+ F) R# c1 S' J4 [/ n
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    ) J& H% V2 P; v- _5 d
  5.     } else {* g3 k6 B8 C$ q. q6 F7 A
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");/ i' l$ R& z6 V, A/ w
  7.     }
    0 S2 T3 Q$ q9 `+ I
  8. }4 c: n& [+ ~2 o# [+ G% w
Скопировать код
Перевод и пояснение:9 N' n% y/ g) S5 e' R$ F' u$ L( x
setLevel(int newLevel) — метод для установки уровня игрока.
% h$ d$ M0 V9 \; a$ f8 ~Мы проверяем, что новый уровень больше 0:
; a. n7 k6 y. I) x: O- k
  1. if (newLevel > 0)$ e. S9 c$ \- |8 w2 N! v
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
+ b! @1 K# I0 ?' |2 {3 I9 W) y& zЕсли условие выполняется, уровень устанавливается/ `: Q" H. o# B
  1. this.level = newLevel;' y4 e( W( J) L% W& u- x, w3 w# ~
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:/ d( Z3 M6 ]! O$ U6 V' g4 s. s

$ y& Y3 e1 X! t; [0 y
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    % c+ y8 p, S: x: e: m5 I
Скопировать код
2. Логика игрового процесса# s9 m4 p, b' }- g" ]( _0 W
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
/ |, ~8 h, Q4 Z3 eИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.8 I( k) A  y( O0 U3 A. P6 N' D
  M# n( K6 F# I& |$ n! p. a
P.S.
# _- t( X8 I2 L, dДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄
8 n2 o' R5 V/ B: D, L
  E! h) q, Z; p5 r/ }% }; a$ |, i0 N/ U' k5 Y! J
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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