Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 : s% ^0 H% f1 b: W. e4 u
5 C1 N8 S1 u6 w9 b  d. z

0 K( k& U- @& s, {5 t- OШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
# T0 }0 v& V* ?' {
  Y1 {4 _' F: [( T  s6 D5 g2 P, Q
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
& q$ v$ s5 _9 H. F; ?/ @5 D- cЗдесь можно:6 B( q/ l  Q: k! j
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    / O% N8 ^4 _/ t
" B/ y$ n+ D9 B
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
- o) p4 s& t! {/ k) z: |9 }- e- qАстралия ?
* p$ n8 ]  K9 s4 M3 d' [) R5 m6 w

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
( D" ]% ?5 x" L4 J  f5 `4 k/ bМожешь подробнее объяснить, почему мы проверяем значе ...

) M! |# }# N- z4 ~Привет, AlexCoder!
; ^1 ~4 i$ M' L) T, dДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
! [0 W2 u7 U6 @( {5 y
1. Защита от некорректных данных' d$ U  Q# A. o/ r) i
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
% I% V- c' i4 e' Z# A% LПример на основе Player.java из L2J_Mobius:
8 @7 c6 _% s' T' C5 L
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)4 B$ U' n4 z$ Y
  2.     // Проверяем, что новый уровень больше 0  B9 G# U4 B% E
  3.     if (newLevel > 0) {5 {1 z" F7 N+ H- Q7 W- K- N2 P
  4.         this.level = newLevel;  // Устанавливаем новый уровень- Q/ o+ b/ d8 p! l+ W0 y' p7 D9 g& D
  5.     } else {
    ; S. e) x! C1 `7 H1 \& ~! `
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    & _1 ]* I' b2 c4 [+ ?
  7.     }
    % Q. }# @0 J; t% x! q9 j: z
  8. }
    " Y$ v* g% r8 x2 ?0 U; Y
Скопировать код
Перевод и пояснение:0 v7 G( w, D8 A0 W: q0 k" ^$ p
setLevel(int newLevel) — метод для установки уровня игрока.0 c, P* X- t- F+ c
Мы проверяем, что новый уровень больше 0:
. o* X- J4 f# R4 S7 |, ]( p6 F
  1. if (newLevel > 0)0 H' s! b% H# a4 T! W
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
& R' ^; c4 _* [) V: R' \0 UЕсли условие выполняется, уровень устанавливается
: F0 H: p8 u! S0 C& o
  1. this.level = newLevel;
    : G3 @# r  l6 z3 T# O" r
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:( i5 i# n/ K% G9 _$ [& H' R  a* F3 ~

* {3 n, o: J& e! R  p
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    ! H- t' i2 V5 `8 k
Скопировать код
2. Логика игрового процесса
- {4 t+ E; s( m0 o# n0 RПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
  G/ A. e8 v6 E7 L4 q; lИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.' H! G5 {3 H: d- `9 U) I1 W( r
, T7 U/ M' K2 K7 f: B7 e! i' v
P.S.
* ]- [3 |. R& qДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?" g1 B  ?& p- B& T9 L( m3 p, y
$ R9 ]7 p3 }9 N/ Z! O& G
' A% Y" z5 ]! ], r; q1 n5 ]6 L
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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