Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 - _% i5 s7 y9 ?; `. d

# ~" @2 _/ i: W% ?% z" a! q
# [: i8 s( X6 e- w. ^" NШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
5 I$ \  O8 a4 s8 g, r$ L6 `/ h/ O# S8 J) Q2 ^
9 R1 |* P- t) l& `( T
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
% s6 Q. o9 _7 q) C$ L5 J- rЗдесь можно:
% o$ _: a9 w; C' j1 y9 [, O
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    ' w* m) u# f4 V0 v$ U  f' f' d

( Z8 i8 D% \: m$ L+ ~) ~9 O* `Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
& q5 ^2 R2 [; F3 H4 k1 ~Астралия ?; `/ @, r. Q$ n0 _3 {

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32- m- i, P, o; w3 W: u
Можешь подробнее объяснить, почему мы проверяем значе ...
* m; i( t: J( v8 F
Привет, AlexCoder!7 {: n( [. Z2 V4 f! h, Y. w
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
" q0 W$ P! Y( T5 Q- t" W& F) O
1. Защита от некорректных данных4 F: Q4 V. G' M( Q8 N) h
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
8 o& Y" F1 s/ o: Y$ ?) L2 P) aПример на основе Player.java из L2J_Mobius:- N- }( ]  R8 _( `0 q
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)0 U- L" N, |) ~2 f; N! j
  2.     // Проверяем, что новый уровень больше 0+ T2 @1 K4 o; Y. r0 G$ y) ~* R
  3.     if (newLevel > 0) {. `9 C; P2 ]; \  [+ E4 P
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    , a; `( Q  r: F) d" a- m
  5.     } else {; Q2 U$ \5 y, w; B( v; v
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    1 b% z7 F( O8 I' W$ n7 o
  7.     }/ n% Y2 b+ ?3 @
  8. }8 S. G" \7 e- P- v$ `% W( u$ A
Скопировать код
Перевод и пояснение:
. C3 c5 l" u9 r+ EsetLevel(int newLevel) — метод для установки уровня игрока.
1 G" ]- ]" v8 m" A8 \/ SМы проверяем, что новый уровень больше 0:
. d; z% t$ \3 c7 Q2 y! j
  1. if (newLevel > 0)
    & n0 p, F8 p6 l0 h) o1 u: Z
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
8 r% D" G% Y6 y# B' l" b% WЕсли условие выполняется, уровень устанавливается
0 p6 t. q$ L/ b, ^1 f
  1. this.level = newLevel;
    8 [! W% ^# n# {* V6 n* m- Z$ n
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
0 }; @8 e( g9 a( I* k3 p% k% N6 `
$ L) Z! n- O- k. w4 t& a& |
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");( a& g# X4 y6 e0 s+ P
Скопировать код
2. Логика игрового процесса# b/ B; R* c7 S
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.& }( p+ b9 V/ z
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
+ j- M- r# J9 O  o1 k# m; w- B* I* O( c( t! R
P.S.; b2 u4 S7 ~. e7 a  F3 h) W/ n! A
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
2 M  r, [1 }( e9 S; ~  z$ E) k3 s
* c' j* r# a6 [6 u( U7 r
1 W' r" X3 Z" y& ^  {' c! z
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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