Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
. F! a+ J9 Z; q1 C5 ^; ]2 h8 S' _) M: H, \( W

0 _6 m( Y- z% k: xШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius" V! D" T4 o+ k1 I
! Y: o, h( u" q. j8 I/ Z2 \' ^7 o" i  e
5 @( ~, k. r+ L! n
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.0 k8 y! O0 i' f0 X
Здесь можно:. N1 z  A( g$ M' b% [
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.! ]. a9 q  D0 |' I

) O3 f5 x) ?. M0 [' wНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?1 b! R% R+ G8 R
Астралия ?
# W6 N$ i7 S1 n9 M' ^3 r$ g

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:323 q# I3 {( L6 i% C' e2 c
Можешь подробнее объяснить, почему мы проверяем значе ...
- c, K  b1 c) a' D* [
Привет, AlexCoder!/ v/ s: v' n- ?+ `# N
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
( z" x: |! A* q0 G7 _
1. Защита от некорректных данных3 u3 i2 V& l" \. E3 x/ U/ y
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.1 V. Q8 A$ h: |' Q3 u( ?
Пример на основе Player.java из L2J_Mobius:
( U( A; O+ M3 E
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)8 H5 b7 z0 g/ x  x& @
  2.     // Проверяем, что новый уровень больше 0# s7 J) I8 o: @* c6 e& ^
  3.     if (newLevel > 0) {
    + U, T; j$ n' Z. z% E3 _8 X6 ]
  4.         this.level = newLevel;  // Устанавливаем новый уровень
      X5 p4 h! t0 J% B
  5.     } else {
    2 I1 e7 K- t6 z8 Q1 G" x: V
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");- x+ F0 F! y, N* h1 d
  7.     }; P' h7 P! N! I4 n( s
  8. }
    % P* N( R3 @7 A2 I7 h$ e) S0 A
Скопировать код
Перевод и пояснение:
* E) {0 `2 Z" @/ G: D4 z, GsetLevel(int newLevel) — метод для установки уровня игрока.
0 n6 s9 W: C' H, h( y/ aМы проверяем, что новый уровень больше 0:
* B1 b4 x& X- A& A/ T4 P6 ?
  1. if (newLevel > 0)
    8 c, {4 o& s, i' \9 }! G5 l
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).2 C4 j4 D4 y* {6 P0 t
Если условие выполняется, уровень устанавливается0 X2 Y  B* j  N0 E4 E% J8 |
  1. this.level = newLevel;
    9 c! F  |6 w  ~" d
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
) v' d+ j) P6 s5 J1 B4 G7 t: Y% V  j, ^. B# q
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");' N3 d; J( @- o
Скопировать код
2. Логика игрового процесса) Y4 J# _* Q. q6 l, j4 a2 t
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.5 C+ \/ }, Q5 R+ Y" M
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
$ N% L/ ^" H8 d* u1 E2 d7 h0 @7 ^# T$ D, W+ C% K0 ^" d
P.S.
( w% `; R- v) z- ^$ n* H9 jДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
3 j6 U  M3 S9 s8 O& Z1 G# d; v3 _9 |5 S* o: L
/ F6 g, Y, S2 p2 Y, S
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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