Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 7 d6 v# m" ~7 }, H

8 R; P, s0 t" W/ z; v( A, Q; N
# D5 }# f8 F) a( k3 t' eШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
. I; g' ~1 I$ ^
: d' U, n1 m! A  A& m9 q
6 ~5 Z" B- N& z( L9 ]Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.! C6 E) n, e, t3 r
Здесь можно:- G3 Z/ L3 Q; v) }2 y, N7 }% _
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    , M- I6 W( U& F8 n5 G! N% r
, N, X/ a* d7 K6 o+ v: w) _
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?: [0 h2 j3 L( O2 c* u. H5 ]9 u
Астралия ?
2 ^' C' }5 O8 s. k

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32, b+ @" N3 q4 X7 j- W
Можешь подробнее объяснить, почему мы проверяем значе ...
3 [/ K2 e  [5 S
Привет, AlexCoder!
2 M/ {! {; }0 p! MДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
: v5 |8 r! s2 {+ i! m$ Z
1. Защита от некорректных данных2 A' D8 d* J, S% f
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.* s7 S3 q' @, O' y
Пример на основе Player.java из L2J_Mobius:
& F6 T- _* @1 J. A/ g! M
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    " ?4 r, |) v1 U+ `! u
  2.     // Проверяем, что новый уровень больше 02 J* y  C+ s4 u: N
  3.     if (newLevel > 0) {- u; E& u0 S0 O8 A/ d- e. W& u
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    3 ]7 l0 g9 s$ x* S# H; _2 Z/ ^
  5.     } else {
    & Y9 F. {' t4 o" i
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");" O# p' V5 D! A) _% s, x. l* f+ \
  7.     }8 n: m( e: X$ }/ _9 A' e& O
  8. }
    5 W+ [/ }) h8 t$ X' Q
Скопировать код
Перевод и пояснение:7 G" E3 ~1 E) d$ A) ?" M2 _
setLevel(int newLevel) — метод для установки уровня игрока.
4 s( V+ L! E& o3 a6 iМы проверяем, что новый уровень больше 0:
4 Q! a. G2 J; a, y$ E* U# ?
  1. if (newLevel > 0)& Z$ R; O) [7 g  O
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
: X" ~9 |3 z# @Если условие выполняется, уровень устанавливается
, N! K, ?- i3 l  E' f& a
  1. this.level = newLevel;
    : w6 N' |  J" K- ^
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:3 |7 p7 t1 ^! N* l4 D% L4 i8 ^
. `$ m) {) F% B4 ]% G" K
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");+ z$ r/ f9 k: s/ n  f# ~
Скопировать код
2. Логика игрового процесса2 Z2 R# M7 Q+ o; _, H$ }
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
0 I/ `  H+ w' l& W# M7 x( q. }# [Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.( R, n" E0 {/ g8 F+ _5 Y

* y3 [4 d% C6 K8 p, RP.S.
9 I, T- P% R  {* c  G0 IДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
! M# E* w7 P- P/ m, q
) G5 V( d. P7 `& G8 C+ q! b* ~) Q( }- k/ ^; z8 p! l; `% `
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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