Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
- B4 R0 x9 S5 |7 y# G
/ N+ m+ Q+ e" Z$ \2 T: K% \7 H, R0 ]- X. f
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
# e) Z6 ?" ]7 G1 Z( U* e2 O3 @4 B, y& `: h& S

6 k; k2 D/ G. YДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
1 V! }2 q' U* w4 v9 @; eЗдесь можно:
9 s5 b$ U( G& N3 v5 P1 @, a
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    3 |# q3 X+ Q9 h

3 Q0 X' {- t" RНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?& ^# G1 C9 p9 F$ i- ]* S  d
Астралия ?
) f. L6 m8 a* b0 G$ y

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:329 M, H$ s4 n* ^- m2 l6 U% {+ h! w
Можешь подробнее объяснить, почему мы проверяем значе ...

4 q1 {! ?( F: M1 c- IПривет, AlexCoder!* L, V9 H5 r/ H
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
6 V7 @8 p& f2 }1 R; G# N3 T
1. Защита от некорректных данных$ G+ I" n0 K( I% R- |
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.7 i; v$ k' g% v1 L8 i! m
Пример на основе Player.java из L2J_Mobius:8 @4 ~) ]) d0 I0 ?
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    4 f  k) c/ U0 K  i/ K
  2.     // Проверяем, что новый уровень больше 04 v' r# |1 |& w( G6 p4 @
  3.     if (newLevel > 0) {
    ; I- \5 V: i. W, {8 A/ C" |
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    9 N5 I* C4 N- b6 ^, f1 P% I
  5.     } else {" X- z; P4 r# L2 x
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    ; r9 L+ {' y; P" @
  7.     }
    & t! h  a8 O3 L) ^7 i
  8. }( E% u7 y0 }6 Z# N
Скопировать код
Перевод и пояснение:
" o/ z  O& m! j- N$ a. h; ~setLevel(int newLevel) — метод для установки уровня игрока.
! ?6 c% B5 [" m4 \8 pМы проверяем, что новый уровень больше 0:
) }" J. s: @) O4 Q
  1. if (newLevel > 0)- S$ P7 a1 o8 v1 g" E6 H9 }
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
$ t. d# H% r+ H# ~) SЕсли условие выполняется, уровень устанавливается
% b% a" `. G# D  C
  1. this.level = newLevel;
    7 z, f& L* w+ o# v) k3 j0 f
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:& u6 x: {( ~% U$ r! o

5 e1 |7 V; ]% o' d2 u) X
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");( g* \" d* ]4 @5 y4 Q
Скопировать код
2. Логика игрового процесса
7 s- e4 k  |0 n* v: F  EПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.9 O( H, K6 o: h  ]/ [8 E) Y
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.* w0 b& b4 w$ K; m) Y% F

: T4 m3 L& {* |' |P.S.; q1 [) k+ g$ T2 ~& P
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?6 S# H) n+ M, }% x/ o2 H. j

* L! f. A" N! e8 F% O0 O% b- h
' k- g1 ?+ j( |- x: b& b3 Z
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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