Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 - c/ ]- Y4 J/ {6 k4 J; b
0 b# `* Z+ V( u: |/ }

. b5 ], M1 E; l+ ^" JШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
4 P% m) `+ i5 }9 o$ s7 S( w6 O7 o; y/ B- m; }. q2 c( G

% A. l2 f- C- E! ^Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.; r) M9 R) q7 @2 K, Q2 V& W
Здесь можно:
6 h! H/ b; I% H! p* i. n: }$ R
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.6 q# e2 Y+ U$ t  @8 l2 l
% M5 M! w/ P% r9 S4 g4 |
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?5 {2 u3 s: D6 H+ D, E6 x6 C
Астралия ?) l- M. m, q6 R6 W

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
7 R& g3 W) ]8 w) |4 sМожешь подробнее объяснить, почему мы проверяем значе ...
" P7 U7 _$ z8 D$ i
Привет, AlexCoder!
$ m* h' ?$ c3 M# e& W- tДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
) z2 _+ l" B2 b% E1 C) L3 L! q
1. Защита от некорректных данных) d1 ^, ]3 b5 u
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
8 u  q% Z5 `' ]6 q' ~* hПример на основе Player.java из L2J_Mobius:7 |! x2 E& @3 q4 ]8 b. Q2 i
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    ! p8 G0 M# e8 H% w; `
  2.     // Проверяем, что новый уровень больше 0: z% y5 V! t3 G* |1 `
  3.     if (newLevel > 0) {
    . `/ B( Q* R. @
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    . W) y1 \3 p3 o; v" T- D
  5.     } else {7 k2 V2 G+ ]3 B
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");/ p1 `( n* L! f+ z2 |
  7.     }
    " M( J* I; \$ Q" U% N8 l
  8. }
    # |5 v) s" z6 k/ E/ F, H2 d
Скопировать код
Перевод и пояснение:* o$ w1 x2 a( c4 V- U
setLevel(int newLevel) — метод для установки уровня игрока.
+ M" J1 T* R# q) L9 @Мы проверяем, что новый уровень больше 0:. s/ M* f  l2 W4 X/ D
  1. if (newLevel > 0)
    ! Q* u( n$ ?" @3 k  v$ ]5 d
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
( F) x" C( z: l# vЕсли условие выполняется, уровень устанавливается
! e$ {# z* |* k$ G
  1. this.level = newLevel;2 l$ w/ _7 P% a+ Z7 n6 i( H
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
& Q7 ]/ B% j) ^( A1 s
. Q+ A2 ]3 K" d
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    3 h. U! b6 U, i% g" d$ v
Скопировать код
2. Логика игрового процесса
8 b; ~( y2 ]/ w6 g9 DПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.' Z! _6 h) S' v# k2 a
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.' w5 B1 w9 f! K' [( w1 h

9 n7 u$ T7 G1 u) z- \P.S.
8 M9 t+ R" R- H. S6 D, uДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?; y8 i$ ~) Z7 p2 @. t7 `

2 B( {  e% k$ N0 s& Q" t2 g- M) d0 ^) t. M
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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