Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 ' ?6 z! |3 o8 h( r! B
9 z. l7 J0 C/ y& g; B9 r

. v+ L# X9 ?6 r. ^! v1 j' UШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius5 |$ g, F+ k) p* h5 B* O
  n6 r4 J! l6 `

8 Y/ v4 h- ~& L% S  F9 ~" W. LДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.) U/ ?' B# N4 C/ K+ @
Здесь можно:$ g$ T! D# a8 K0 S
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.( C6 B( e+ |9 b; h5 m( y0 R

8 y0 Z, e9 S! ~/ D; t+ a; `4 ~6 Y, I0 hНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
6 D. _8 [3 P5 c1 u3 `Астралия ?
/ I0 @% D; d. v: S/ Y8 X" {

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32: I* C* F! o3 I7 l* f, C
Можешь подробнее объяснить, почему мы проверяем значе ...
0 j& g, g/ Q- l: H& x8 |
Привет, AlexCoder!, u' N! |  `2 _
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
0 D3 K2 t' C/ u( \* A
1. Защита от некорректных данных
" \) O& i, `" z3 NЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.# [6 I, s: D. Q; H, x
Пример на основе Player.java из L2J_Mobius:9 `3 V# V3 [. C* t
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    $ b# t& m5 I* [7 j1 H, g
  2.     // Проверяем, что новый уровень больше 0
    . r* G( Q" T+ M4 [# D2 v
  3.     if (newLevel > 0) {1 z9 B9 J. M$ T" m. y& W8 w9 b
  4.         this.level = newLevel;  // Устанавливаем новый уровень9 c, ]2 P& l2 P# U, A. c
  5.     } else {
    ' E  p# }9 B( k+ x7 q3 e( e6 A
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");9 t3 c. U  Z7 }: ^" j& \
  7.     }4 X9 k( r" G- h) ^2 n4 J; f# ~8 k2 [
  8. }% i' c- G' D# I2 f' |" u  F+ ?5 a' w
Скопировать код
Перевод и пояснение:5 Q$ @. x) D' S4 o: l" p5 a
setLevel(int newLevel) — метод для установки уровня игрока.
; N+ |8 w' N: }6 w( A' m  [Мы проверяем, что новый уровень больше 0:* h5 c( T; `% t& g: L  |1 ?8 m5 ?* N
  1. if (newLevel > 0)
    & p6 y7 m. P$ s- Y. G! O
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).- G  A7 \, ~5 W/ C6 D
Если условие выполняется, уровень устанавливается
( _! V  t! i' s( Q
  1. this.level = newLevel;! B, l/ _8 l1 g9 M. \) K* t
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:* Y+ q2 F1 G, ~
1 `0 i+ a8 [  h. Z
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    - N$ G3 L$ n5 b; _3 ]: |* B
Скопировать код
2. Логика игрового процесса7 b, f7 ?$ N% q) n& A
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
$ A. K& p. O0 L% }+ g1 J$ bИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
- w5 D7 V$ z9 t0 C
  u0 n+ [7 D, H& G3 r6 Q4 U3 pP.S.! @/ r+ N) s+ s$ N; D7 A9 E
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?* V7 P4 V7 M% v- A3 [& w' a

$ x* W3 u0 u2 |( H4 z' }& C/ o9 K6 l5 B% z! u  |+ O; F0 V
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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