Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
* S" n6 |3 r3 y& W8 y# R
8 @7 U; {* E/ g. L; t
; J# O- n1 X* ~3 c" XШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
: t) z$ S0 U. E" V- @' Z8 S% s* u

/ A* j8 T+ q2 t6 Z# V$ C' T/ S( K3 ?Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
/ y) |9 j! g7 [8 X" R# aЗдесь можно:
& H% L! i' e+ @1 \3 o0 N
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    " k. I2 m4 i- ~) |! T% B$ q) H

/ Q% Q1 S+ N! x$ IНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
. J4 h1 Y3 E4 l) B9 [1 G5 lАстралия ?5 I& H8 S5 w8 P, H% T1 D

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:322 g5 C9 ]8 D) j$ W0 ~
Можешь подробнее объяснить, почему мы проверяем значе ...

" Q+ I) u- u0 b% LПривет, AlexCoder!% X3 x2 H9 [+ r
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.5 {' b/ n6 E9 E" r( o

1. Защита от некорректных данных+ T4 {* f* J' @3 h. x. o1 ~- T! c
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.: |! B2 r& \4 z6 [9 M$ w6 h; b' q
Пример на основе Player.java из L2J_Mobius:' y$ v4 }1 S) M, i* L- `
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    + p( T1 H& B) ?4 t9 w5 L4 Q( Z0 n8 W
  2.     // Проверяем, что новый уровень больше 03 y( K: M* U  P$ F2 n; I
  3.     if (newLevel > 0) {) @) F4 Y: `; b* r" h- [. [
  4.         this.level = newLevel;  // Устанавливаем новый уровень% R4 }6 q5 |' q+ e/ k0 D4 C+ u
  5.     } else {
    2 c- l& y2 `. S
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    $ Y9 L5 U- R( Z0 g! W- V
  7.     }
    / J. t0 \! K2 Y* V+ K+ r
  8. }
    " h- G( V" \( ?% ?4 ?) m- A
Скопировать код
Перевод и пояснение:
$ M. u( _& }2 P, e' UsetLevel(int newLevel) — метод для установки уровня игрока.
3 I: R* V2 d. y( O1 ]& ~5 ~Мы проверяем, что новый уровень больше 0:/ T( R. _; {% o+ P/ D  p; T8 B
  1. if (newLevel > 0)
    4 w/ |' C  F# |) b  Y4 }- r8 @
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).6 p  }6 i8 H( x1 Z( }
Если условие выполняется, уровень устанавливается) Q$ c8 }8 U! T- `6 p3 o
  1. this.level = newLevel;
    ; r, u: Y# S* c2 L% B
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:) q/ i0 V$ i5 ]3 _: k8 a
; r  W' J! }  K+ M( ]) |" H2 J7 s/ p
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    9 X  I" L. E" b1 y
Скопировать код
2. Логика игрового процесса
8 r/ D4 f- Z8 [- ~1 C/ d: t/ x7 zПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.: a2 X! M) d9 A, k" t, t- U  `' V/ p
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
9 O3 n9 i$ _- M' W2 I) T  t" i4 |
* p- N. F6 ^1 `P.S.* F+ A/ t1 {* b9 O. Q/ N, j5 u- e1 g! Z
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
+ X+ @& }4 o' \+ k6 m. ]' y1 j- i: p$ j1 M, W

9 D) a& V  A% B. T. s5 _, H
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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