Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 . s% e7 o' G" Q  x
8 v, {% T1 k! |/ ]9 X: g; U
& V' v8 k: N% p0 Q3 P' F
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
1 u& C! E! ~( M: y5 ]4 f, T2 C& W  N5 Q
2 N, m9 S  U! Q* e% n; j
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.6 R0 [  x% s' C2 {+ l
Здесь можно:! F6 f: T4 i* q( o
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    . Z. V: B3 Z9 m" R
! s. ]; d  c8 l! F/ g
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?8 O2 G; `" g+ P0 t6 O' F  k
Астралия ?& O1 H" M8 Z+ s+ f3 P" X- R

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
* T8 d# N8 X  N, t- Q- R1 iМожешь подробнее объяснить, почему мы проверяем значе ...

' P2 {9 \* G0 W! K4 k" QПривет, AlexCoder!
' c- V) g- L, X$ t% d4 a! OДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
, \8 g! z/ Y4 B! c
1. Защита от некорректных данных
& u, q; h. p% `4 P$ l6 d" K* eЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.1 k" K4 T4 Z6 f; o: a2 M  X" }
Пример на основе Player.java из L2J_Mobius:
6 @8 j) Y% M$ i) ^8 t0 O/ S
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    4 q" T  b2 [, C( c/ S5 C
  2.     // Проверяем, что новый уровень больше 0  e( Q( J+ |: A: I$ b. h- c, ?
  3.     if (newLevel > 0) {$ h. ?, e/ B' Z! ^4 u0 C
  4.         this.level = newLevel;  // Устанавливаем новый уровень( |3 L0 @; Z, ?- f
  5.     } else {
    % ]: `* L# @1 F: W) l) l! Q
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    : l: Q) O, Z) w: B) P" M  M+ B
  7.     }
    + v5 ~9 S  S0 Y. j; G- ~1 s7 T
  8. }& I/ A; W' ?1 Q+ P; P# e9 B/ p! E
Скопировать код
Перевод и пояснение:
1 s& R6 y0 E4 C2 B& u# V/ m% I3 V* zsetLevel(int newLevel) — метод для установки уровня игрока.8 q+ c6 g6 I3 X: P' h: C
Мы проверяем, что новый уровень больше 0:8 r9 |$ O/ w2 y9 J- W9 p/ U
  1. if (newLevel > 0)
    / ~  b, U6 D) C
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
: m* J/ t. \' rЕсли условие выполняется, уровень устанавливается, W9 E0 [* |# w8 D* n
  1. this.level = newLevel;1 h! F- [. Y$ \# a% J0 ^# I
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:) y- _- {8 u: X$ |2 m( t' e/ i

  H. O0 l  @7 i
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");: |! U: F8 `( l* ?6 u
Скопировать код
2. Логика игрового процесса2 F4 ^& k9 \1 f# w: q# e2 _
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
0 M$ d$ K. J; T& E. e2 {. FИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.) T8 z4 d& {8 d: D
9 z, j% C& R% K# |, C
P.S.
- L/ n1 c) Y. B6 X+ jДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
5 e; U0 F( E# `0 i# ~/ f6 P( ?4 u+ K' q$ @. [% r5 a1 Z' L( }* ~

( }; D* ~5 s, }2 X) [" ^
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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