Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
) a  J. ]: {8 {. A9 a/ x8 v; k- w$ D

+ F% y* g6 s& d+ J8 ^# o1 Z5 a5 rШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius- S$ z' t5 }( \) x; I& _
2 d0 d1 u- S3 Q5 f# M' h3 \
$ `4 a1 C! V  W5 }& x
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC./ Q& X! R; V' j
Здесь можно:- a: x4 a* i" F" c, R0 T' h
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.0 X, b. m- @- i8 i. m9 ?6 {* |
1 Z4 h2 S9 Z  D; }# A# G
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
( R( k& |, c% [) J# b- E! eАстралия ?
& O; g8 Q! }* r* I

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
1 r/ o& ^0 G; N% G( ]  N) qМожешь подробнее объяснить, почему мы проверяем значе ...

! Z" ?1 N+ H/ w/ Y$ E( ]Привет, AlexCoder!' U8 Y3 ^% Z! e% w2 f
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
$ Y/ }- R% P" w- Y
1. Защита от некорректных данных
) ]& V: I/ S) f7 M" f3 H; d5 {Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
1 T* X: i( k' {6 W4 t" e4 c! uПример на основе Player.java из L2J_Mobius:
4 Y) d: d7 m& u9 U6 i  I
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)9 `; n6 i0 G: y, n7 A, m2 f
  2.     // Проверяем, что новый уровень больше 0
    / B' C- L6 E" V: E: X
  3.     if (newLevel > 0) {
    0 v" Z* ~! q2 o) t
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    2 d; |% M: Q7 P7 g) b7 J- o
  5.     } else {
    0 O0 t5 }% q( u
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");) h, L2 c, G- h4 L& V  ~* P
  7.     }9 r2 D& I+ g3 _5 E* M; E! @
  8. }
    7 _0 m. m* D) B" j7 L
Скопировать код
Перевод и пояснение:) F3 K$ F- F' g- r
setLevel(int newLevel) — метод для установки уровня игрока.' r( u$ c' x1 G& g
Мы проверяем, что новый уровень больше 0:1 J3 {/ y- ~$ ~
  1. if (newLevel > 0)
    ' x* _3 j1 N' C2 n9 O9 p/ ?
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).5 ^  C8 k  M; w: d
Если условие выполняется, уровень устанавливается
* p& C$ b) l; \* c8 O
  1. this.level = newLevel;
    ; P, O6 @8 k# ~0 n7 ?
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:) ]" Z7 t+ {' X8 p

0 f6 A8 ^0 C: o& @* s- q
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");& [5 C) ]- f4 g; ]/ \4 c, {' L  ?" R
Скопировать код
2. Логика игрового процесса, n& V# q: J6 q, H6 M
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
1 |: t) |1 T& S+ JИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.) n  V5 ^) {% D9 j
& z/ d$ w/ i  q; \$ \" q3 p" N
P.S.) f1 r$ l- X( {% y+ s
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?$ K, E: c5 u8 }: n) D4 T
$ p, ?0 K( }! ~* a( l* l8 I! F9 D

6 }6 K  W2 Z9 u/ q/ {; @) S3 j
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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