Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
# i7 T* U$ Y: _' n+ F& |5 m. m' B3 G, F7 Q% ]

9 D7 z# H! Z; k7 f5 iШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
1 \( r5 `: ]2 a  z: I( N2 P( V6 O/ G% \

6 j( \2 b/ u; u& g  v1 K8 e0 IДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
- R+ N% J& {, \Здесь можно:" N% L* B8 S1 m# C
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.1 j2 o5 _2 D, u/ Z8 B+ X

: r# r( S; e% e  u" tНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?) y* z" A- ^# U5 B; D! [
Астралия ?
. ~9 i( Q5 w& A" W

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:328 h5 m0 s9 G! [% O3 o  Q
Можешь подробнее объяснить, почему мы проверяем значе ...
" Z3 [7 F, q+ a( Q2 G8 U
Привет, AlexCoder!
% E5 l* n, ?. S4 ~. z' _: e8 W- }Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
' C( v' M5 j6 Q, p/ M) @! [7 t" }
1. Защита от некорректных данных, ~: e- h7 R2 T. Q  G  ^8 U& B
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока./ \: [, `: s8 S4 h/ {% L9 f: f
Пример на основе Player.java из L2J_Mobius:
4 L4 r( Z+ U- l! N/ R" A) E
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)! j/ a1 S& N1 A
  2.     // Проверяем, что новый уровень больше 0$ \! h2 c, ^* S0 L
  3.     if (newLevel > 0) {/ c0 P. G* R' f; ^: {( k( U, L! A
  4.         this.level = newLevel;  // Устанавливаем новый уровень6 ]! z/ b& {7 ~) }6 \! r/ _+ L4 c
  5.     } else {
    " Q  X9 d4 b( B2 f
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    ; ^* g1 I9 ^. E  o6 ~( V- r
  7.     }
    . V# I7 A6 U9 Z- z
  8. }* E$ U: H& v1 T) T# u8 G
Скопировать код
Перевод и пояснение:
9 r9 N  t7 {8 K/ B- ]/ JsetLevel(int newLevel) — метод для установки уровня игрока.
& s& c/ i( P  C/ h; D) B0 eМы проверяем, что новый уровень больше 0:/ m, f8 F9 k# \  Y$ a1 q
  1. if (newLevel > 0)6 X" H0 U. F* M0 d: c- u6 \" v& H% T
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).  j$ s& A& j9 B: A
Если условие выполняется, уровень устанавливается
: T) Z0 X6 v" L2 Q7 `3 }
  1. this.level = newLevel;
    ) b7 ^$ C8 p2 @) k0 L% o) `3 _
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:4 b! d1 L1 v  p6 \
/ m  {1 p" r& z7 O  d* ~
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    8 Q4 J1 O' T, I
Скопировать код
2. Логика игрового процесса
" H! \) z! J3 dПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
( `! ~% S+ }8 i2 f2 WИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
& X9 A/ }5 N$ P% m+ b" @* ~! T/ q8 c  u3 r" d# s8 e5 J) e
P.S.) a* z' f6 R% m' {2 y' f
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
, B0 q( B5 `% b9 n; P% }4 M6 t: E1 i+ T6 q8 j7 s$ S

  C! H4 {, v- a6 \: c8 h
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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