Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 ; \/ }4 L  d: W8 c* {7 n7 X2 g% b: x

; g$ s  e% Y3 y5 e
# Q  }: J# z2 Y5 T1 _/ T1 RШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius! [" H+ F, E$ U4 S7 e
4 y+ j3 a- e' V$ v  K1 d1 `

3 M& ^+ ?5 R2 o* X. f, aДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
# \7 f! Y* Q; f0 jЗдесь можно:
# C/ Z/ H" q* ^
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.9 G, Z5 A4 g+ \
* D+ y! ~5 M5 H
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?6 _7 ?& x. o* s8 F5 }/ m) E8 h
Астралия ?/ R0 z6 B. W2 Q/ O

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
& J$ m; X% d5 e; jМожешь подробнее объяснить, почему мы проверяем значе ...
. t  a, W7 D5 N, i% r' Q8 q" b1 {
Привет, AlexCoder!
9 ~5 @# m& v- t6 ^Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.8 T" ~' k0 C. V" Z

1. Защита от некорректных данных
) I* P9 b9 e0 j9 z* S5 G; |$ bЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
( @6 [. n/ e1 ^% E' uПример на основе Player.java из L2J_Mobius:2 v* B+ K. M" j; N7 p
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)1 D  Q8 k8 C" o; y% I/ _6 v
  2.     // Проверяем, что новый уровень больше 0
    4 d8 y" Y4 G8 r' a2 }7 `3 O4 r
  3.     if (newLevel > 0) {  g. u1 D! I+ i8 @" M/ H
  4.         this.level = newLevel;  // Устанавливаем новый уровень' Q9 c( }4 \( M- q, G
  5.     } else {
    8 R2 a3 |( S/ i6 a9 j
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");" X% E8 k8 ?/ l
  7.     }
    / L, k% P' C+ _! M! }; b
  8. }
    ! d( N. l+ f2 v) B0 j# S
Скопировать код
Перевод и пояснение:. A: H. f. F; Q* v2 ]! f
setLevel(int newLevel) — метод для установки уровня игрока.
: k6 P! d  ^; Y' Z" x( M" U( ^Мы проверяем, что новый уровень больше 0:
6 |' s% D3 R; s
  1. if (newLevel > 0)5 d; }, R& z$ a, |
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
" y) h& m: ~3 D3 gЕсли условие выполняется, уровень устанавливается: n! P' I2 V1 i/ L" A0 O3 W  ]
  1. this.level = newLevel;3 N) y- i, J3 H4 o. Z7 l. w
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:& h4 e7 X! o" z! I) k, P6 l

  L( |1 f& n: F7 J# a8 }2 f" m  }) ~1 a  S
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    $ a; K; Z1 R# P+ }' y5 L# A
Скопировать код
2. Логика игрового процесса( x' }; C2 M" J% U& V
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.) }( u5 f; g; Q) D/ f
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
. Y! b1 m( |- E$ a, e0 Z3 y( y+ o) D3 B5 g
P.S.. [% H. F+ E/ d& {
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
0 z+ t# y  T0 ?/ [+ g/ j
7 W0 N) S9 e% g/ l' k8 o% s/ A3 j+ ~. |% O% M
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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