Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 1 A# v! @' h8 H
9 R" b& ?  p/ V) K6 y! q! I
; X6 y! L* R! G, _* }0 w7 q
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius0 e. Q! \! c* N. C. A  v9 k8 O

2 ^" r  m' _8 E; G
2 s6 \: y9 K. a7 K6 aДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.+ v1 z& f, P2 A9 E. X
Здесь можно:, {9 L' o1 n8 m2 F( I& y: q
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.; s) m9 Q* }( U$ U! Q; B1 ^

3 W1 O3 r  i# N2 x9 CНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
) K9 B7 I' U! bАстралия ?7 r+ H# G- g/ Q

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
  Z0 \9 M& ^: d- r& EМожешь подробнее объяснить, почему мы проверяем значе ...
' ]9 L) |2 `7 F) t
Привет, AlexCoder!
* n. c1 e. @1 |, H# P5 G4 }5 tДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.4 h) E( c# e( u% e; e

1. Защита от некорректных данных* H1 y/ k& _  K  L' Z
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
- `$ b7 J7 L' Z0 m, z! |Пример на основе Player.java из L2J_Mobius:- h) ?1 T. B6 G+ B" o- t
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)" [" T: T; _$ r4 W7 T1 b! f
  2.     // Проверяем, что новый уровень больше 0
    * \) s/ Q! V, N) Y0 \
  3.     if (newLevel > 0) {
    ) H# R# B! j: |1 ~7 r' k
  4.         this.level = newLevel;  // Устанавливаем новый уровень+ A. o$ @& ~  z* ?4 W4 Z9 y2 s$ n7 J
  5.     } else {# d7 V& w# `( S! w% }
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");0 H' W# c( L, ^( }; Q
  7.     }
    ( @- f8 R7 V2 i
  8. }
    , @3 f$ p/ Z9 |+ F
Скопировать код
Перевод и пояснение:
6 M4 c/ K! Q7 M/ C. H- \! NsetLevel(int newLevel) — метод для установки уровня игрока.
5 _& F1 w4 [# _8 WМы проверяем, что новый уровень больше 0:5 Y  n! V' h4 U5 y1 ^( ]6 d6 E
  1. if (newLevel > 0)" F! V5 |. U6 X6 s; l
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
; h/ H2 W( ~  K5 I9 d3 BЕсли условие выполняется, уровень устанавливается
3 r2 M+ \' `( x+ [- l4 N
  1. this.level = newLevel;
    ; R# y5 i6 j: m8 z4 ]9 s. `
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
* h7 F3 L! n3 Z6 K! H
- |6 w: Y7 p4 S* X0 a) u
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    5 l; C/ V8 z3 L2 j
Скопировать код
2. Логика игрового процесса! L0 t" |, ~# ~% T- n, q
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.7 p8 J& o. [+ Q' a1 a; v& Q
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.* u( @# q: E, ~; _+ o- ~
' ]* z% p/ r; C" j  R0 \: q* M+ e
P.S.6 D. y1 K( G- `6 M
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?0 K: D  b$ K! `1 d$ d* H8 I. {# z! h! v

7 m' ?& Z8 t! x9 |, S, ^" x) c2 C* D  x7 f* @* l
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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