Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
* J) D0 ]$ A; M/ [6 Z: g9 U5 n
2 @9 R: l6 k/ h  N1 m' I
+ m" X" t/ y  y( J* JШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
8 ?$ E0 l" m" g4 z' H+ e" s8 _# H- L% @0 m

3 y, A6 ^+ Z  jДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.5 @) {5 |& T: d) k' _" w4 T2 s
Здесь можно:) t: Y* k+ W4 R; C
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают., l& j- P) \, _

- V5 c$ x9 N' D5 oНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄
6 r6 G2 N. G# t( Y8 E" ]Астралия 🌟
% h. \+ z3 u( w5 ], l, G) B

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
1 X) |$ ]6 h' K- \% u8 FМожешь подробнее объяснить, почему мы проверяем значе ...
2 N; Z3 p2 I" R; A: U2 Y
Привет, AlexCoder!
' i- f" N6 P; ?5 K+ c( OДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
" u! j: J& L" p# Q4 |# S
1. Защита от некорректных данных; `: `8 Z0 @2 u) G; K* v
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
3 e. C- y+ t' Q: h- }5 xПример на основе Player.java из L2J_Mobius:
' t0 |0 I4 ]2 J% R
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)- j8 u( T) M3 x. w" W
  2.     // Проверяем, что новый уровень больше 0
    0 e6 `) g7 u- C
  3.     if (newLevel > 0) {
    : A8 ^, ]* G! v$ g) j* j
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    # I* o$ M& Z8 W
  5.     } else {9 V- ^" w) u  m, {8 A
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
      P4 P( v! b. a5 k5 j$ ~) m
  7.     }
    ! N6 y  O0 Y5 z3 Q  U- W% [6 M
  8. }
    8 F3 \+ P" e# I# {1 d5 j8 j+ r
Скопировать код
Перевод и пояснение:
6 g) R3 w4 e1 K& D3 i! Z+ s2 xsetLevel(int newLevel) — метод для установки уровня игрока.
2 ~) E$ y+ ?6 R, v8 R# cМы проверяем, что новый уровень больше 0:5 g# {0 w" H- ^$ t: r
  1. if (newLevel > 0)
    2 O! d* {4 _: {4 @
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).! B$ n! [7 S/ F7 _0 B2 D
Если условие выполняется, уровень устанавливается$ n8 d7 L3 y: Q+ U; y" C
  1. this.level = newLevel;6 Z9 [4 E% @/ \1 r& S
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
8 P, c% v; C0 `+ v- l9 U  _, G( z8 L
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    1 {1 B" V3 u1 g& T
Скопировать код
2. Логика игрового процесса
, k! h* v7 p, s( Z7 G+ IПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
! r% T* Q  |; t7 P2 J) L! TИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.( [2 S5 t# K# [2 a  ]" R; X

8 I' y0 A' p2 g# HP.S.
6 S, E6 s  ~  S- a0 J6 \7 y# NДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄  z+ i" T* R- D, G. [+ z; ~! x

  v# V- w! Q' W
! W7 N$ n9 g* w9 G% d4 k
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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