Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
9 I" }: P" c4 S) j6 R: ~
: V1 o, J7 U- M& t' D9 x9 I% q1 ^
- I$ b, |5 k- a2 t% @+ q" gШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
: a' |7 n: _6 J% S! ^: M$ f$ A
+ E" ?3 i' r2 Z* ~4 e  w! N4 Z% q) E
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
( \% m' {" _6 x5 S' H3 `+ }Здесь можно:# T" J+ E" x  U9 e
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.$ _1 ]2 {1 B" y7 V

# N: S/ H5 m1 ]4 L5 x/ Q  p6 u9 MНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?( M7 k  r# ?/ D5 `7 `& i
Астралия ?. P( n# I1 W( w) V* y( O

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
! M* k8 e! q, ~1 FМожешь подробнее объяснить, почему мы проверяем значе ...
4 @9 h. q" t) U6 w: T( l
Привет, AlexCoder!9 w- a6 K, h% c1 z
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
* r& C4 k- c+ t/ h
1. Защита от некорректных данных
- y2 F( N8 m1 w0 r# q$ }Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.3 ~8 s$ O  x5 D; ]
Пример на основе Player.java из L2J_Mobius:
4 n$ f) g9 f% B
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)  @3 p* K3 t9 F) Q" R; l" \
  2.     // Проверяем, что новый уровень больше 0
    % u* H* m+ \8 f3 v9 K; v/ G7 L4 E+ n
  3.     if (newLevel > 0) {
    & F* e5 H( _: f
  4.         this.level = newLevel;  // Устанавливаем новый уровень6 w: D# `) i! N
  5.     } else {
    2 V8 R) {& U* B, O
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");6 ^, E- u; p0 j9 s) e* ]" O' j: h
  7.     }
    3 {  r& z- O! L4 w8 i; h, w2 A
  8. }
    0 D  H9 ~9 s3 j
Скопировать код
Перевод и пояснение:! Z& y3 v# B6 T4 ^
setLevel(int newLevel) — метод для установки уровня игрока." a  E& S2 i- {  `0 @. s( k. Q
Мы проверяем, что новый уровень больше 0:0 S5 c1 D) ?: S* l* ]/ a
  1. if (newLevel > 0)4 K; X7 X0 P( i3 c
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
2 `+ @* K- O0 Q- F( D. B# uЕсли условие выполняется, уровень устанавливается* Y5 N, E! h8 r. j4 n6 b
  1. this.level = newLevel;. }! R! U/ _2 p
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:; v2 b" K2 O! \* j
- E) x% u( d( I% X- z1 G
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    " h; `9 F; F% q5 P
Скопировать код
2. Логика игрового процесса' }9 u# S% e, w) q: T: ?% V
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.& o* t; U* }( N' \1 W) Q- V
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.1 ]' I" e) V" ]) L" O
0 ?4 @3 K- N! G. @
P.S.
; u+ A! \/ o  l4 f& iДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?) {3 e& Z5 Z" ?# i5 E0 i) s: W
% K' ~/ i/ p/ q5 V- @9 ~9 z9 v
/ F* [- v5 s* K+ L6 K' K
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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