Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
( |' G# F7 M* k
' i2 B" b- b' G; D1 L2 K% s' }2 ]& O5 z. T9 s, A
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
8 u8 {3 f" ^. v' m( u5 O8 B3 ~3 C1 A6 p9 Y. o$ C! r
! v# l; i6 |. @% J7 V$ R
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.# i8 M9 R' {: O: T( u$ p
Здесь можно:  V: L' H: r) K9 m! v# `2 z3 o" j, S) H
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    0 M7 p, ?: R$ w5 b/ V& m

/ x) c; V3 R' L6 a2 AНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?2 w+ V3 E3 {7 ]; s1 P1 V4 D6 Q4 o
Астралия ?
6 K1 T5 {, Q/ F4 O

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32" P4 N# C# G. ^5 ^/ X( i/ K( {; e! j
Можешь подробнее объяснить, почему мы проверяем значе ...

0 p7 |4 o' I, E) [: tПривет, AlexCoder!
. b. z/ Y* L* \Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.) o4 g# M  R( t5 ]! K4 M3 V

1. Защита от некорректных данных; p" H) l, t2 a6 X: O6 [
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
& Q. ]$ u* [' E% _1 R' a0 f8 BПример на основе Player.java из L2J_Mobius:
& F3 _8 a( k" M3 v2 ?5 }
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)) Z2 Q0 }; g0 k2 t  X. k
  2.     // Проверяем, что новый уровень больше 0
    , s7 n# c; m) Y' W2 e! I
  3.     if (newLevel > 0) {
    ' N  A6 i& o* j5 D' _% x0 {6 y
  4.         this.level = newLevel;  // Устанавливаем новый уровень& ]& X) J' b' D: ?
  5.     } else {; u% ~2 n. z7 o/ {
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");- C2 n9 U2 p- {- W
  7.     }
    8 P& b% e  O/ O. r
  8. }& s- R- ~) ^& c: Y% [
Скопировать код
Перевод и пояснение:
) S1 ^: j8 p6 EsetLevel(int newLevel) — метод для установки уровня игрока.
3 W/ ~/ t( u$ p2 X9 zМы проверяем, что новый уровень больше 0:
" n  I, d  w( m& q" K1 z
  1. if (newLevel > 0)
    * n+ t% j) R1 h, I1 H
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).' [5 H- h# v2 X+ G+ ~. K
Если условие выполняется, уровень устанавливается
  `5 X7 L# j$ E8 M3 \3 t2 s
  1. this.level = newLevel;- L  u( H3 k% e: n
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:# c' P1 M: K3 l3 X7 h

( w, T8 j: T$ N# t
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");0 q. C8 R5 W( Y" ~9 T6 Q
Скопировать код
2. Логика игрового процесса
  X. R7 W2 y* q, h" r" vПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
& y) o% W# J$ _& z0 DИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.( A: w* `$ b( n/ u. g: p7 S
1 K8 I, E0 X0 J  C) i7 _4 z, E
P.S.
4 D/ v7 O8 z9 u* R3 ]Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
5 Y# B8 ^! p* |+ {- S7 Q4 c* T+ U6 F
& a' F4 {, S2 M3 w/ T
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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