Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
4 P3 v* |( b/ u$ w5 w4 d3 x6 J. r# W& M( E4 l
2 z. [+ v- U8 f  f6 u
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius  Q9 J2 b# D( J$ ~
2 y% o0 a/ [% T8 H: F
7 h4 x& J: b0 A7 _1 O$ M
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.+ X% m, J3 [0 f8 l' y
Здесь можно:
9 p1 I% k0 t! i+ @+ N7 |
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.- r3 @7 ]! K' g; N/ p3 s

) V/ T; ^4 N& ]* \* e! v% EНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
$ L# o' Z) ?: G6 ?* b/ VАстралия ?
7 b4 s; n/ d% I6 J6 V! W9 |! ?" S

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32+ h/ B4 S1 E6 f6 V
Можешь подробнее объяснить, почему мы проверяем значе ...
( O" i! p0 l) V; i7 E6 ?  h
Привет, AlexCoder!
5 v* U4 l3 r% a; C* q% ]  \4 UДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.- `9 G! A# T7 I& [3 p% k

1. Защита от некорректных данных
: v$ x* v: O' \Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
/ _( j# H3 q: h9 K- DПример на основе Player.java из L2J_Mobius:5 e, I+ \& o' D6 s# E6 j
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    0 H1 _5 f! ]  p6 P! p8 S' j2 e
  2.     // Проверяем, что новый уровень больше 03 m2 @/ d3 A6 [8 n3 h
  3.     if (newLevel > 0) {
    % ~( Q/ g7 m7 R2 \7 P$ C, C
  4.         this.level = newLevel;  // Устанавливаем новый уровень8 @8 w9 n, Z# D# t) Z6 i
  5.     } else {
    4 p& A9 U1 o) ~$ I- @# y
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");5 e+ Y3 d) m* j9 W
  7.     }) f, f  y* z0 O) M/ s3 m8 b. V8 ^
  8. }
    % I0 Z! Z+ a4 L  u
Скопировать код
Перевод и пояснение:1 w8 `! L8 D7 b5 s0 O+ u: _
setLevel(int newLevel) — метод для установки уровня игрока.) q7 q: {; U/ r5 S8 l+ s2 }, y
Мы проверяем, что новый уровень больше 0:
$ A* `0 @* `  u2 A- h$ b1 p; l4 c
  1. if (newLevel > 0): x: J$ p2 r# `" I1 r! ?! _4 R+ T
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
+ b; ~0 a2 O* ^: t. t$ ]Если условие выполняется, уровень устанавливается9 ~( k: Z6 }7 s+ [
  1. this.level = newLevel;$ z" k, U6 ]% Y  s  @
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:8 R; N+ R8 C4 m
/ k% _! e: g& Z- X( I8 b
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");4 _- g8 b* E5 [) L0 j
Скопировать код
2. Логика игрового процесса4 Z0 C' n: A8 g/ ?3 B
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.: E. g; t- A6 O% G% z
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.3 J4 c* j0 z8 @

2 ]5 ^. H; }0 t$ zP.S.
% Y4 t. P" Y% L# ~5 MДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?/ Z3 H, P) g3 ]  q1 v# ]1 z4 a0 v/ k
* X, F6 o7 x1 v1 F
5 t% Q. K3 `: F
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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