Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
3 A' T# g  R: r' s; n' W3 `$ [5 |
" a- x1 P! [, M: [
' V# L+ |/ o. H& J7 \, w& A8 AШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius% {7 [; F6 Z1 k0 N  _

: ~9 R. A, @: \
7 u4 Z4 m+ I( H# h' i7 |$ n1 ?Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
- P% `+ _  C, H; c& m$ V" yЗдесь можно:
% u) A1 Q1 N' D) N* Q, X
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают." V& {' Y8 Z5 E/ O7 Q8 c
; a, T7 _- ^" r. a
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
8 l" X8 a( {. ?2 }) ]4 V: ?Астралия ?
3 f  L2 T) }3 T4 E. l5 C

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
$ }3 J) }# p+ C) wМожешь подробнее объяснить, почему мы проверяем значе ...

  q2 A! w* e+ _Привет, AlexCoder!/ t5 i6 x; m( S) `9 }
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.) I* ~" ~7 J4 {) {

1. Защита от некорректных данных# y1 z$ J5 J3 }  p2 l
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.% m. N( X6 q5 k
Пример на основе Player.java из L2J_Mobius:
! `1 G4 d- ~. G5 O
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)4 G4 F" Z* S: A* m4 j
  2.     // Проверяем, что новый уровень больше 0% x' P7 |; H3 D
  3.     if (newLevel > 0) {
    8 R8 U6 S- T, [; Q5 m' w' y
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    " \5 k: C2 b& }1 N- z+ N
  5.     } else {* i: l$ Y8 G1 z9 w
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");: @& \6 O$ e1 v1 A# }; w+ @* h
  7.     }
    9 ]4 s  m5 V, B3 T- g
  8. }- w% b. `, ?6 E7 R/ g
Скопировать код
Перевод и пояснение:* S) t# c5 Q: n% N3 l3 Q( T# h
setLevel(int newLevel) — метод для установки уровня игрока.
9 L/ \) h( [' I: WМы проверяем, что новый уровень больше 0:
; A- V" l0 A4 {- B5 H$ p7 X! L, _, z
  1. if (newLevel > 0): \8 `5 \& b. {) l# e6 P0 k
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
6 F3 ?0 B3 Q8 K) {Если условие выполняется, уровень устанавливается
  P" X9 s# A- T
  1. this.level = newLevel;
    1 ]$ Q$ Q) l4 e5 s& _7 w1 l
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:6 g$ h/ `( Y6 r/ h+ t

8 W# Q2 v, y4 q+ [5 m1 [! b; m
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    1 G4 A7 A$ j; [
Скопировать код
2. Логика игрового процесса4 z+ ?+ k: ?5 ~8 @
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре./ p- _1 ~& R8 ]0 f5 g: ~3 r
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
3 \4 [; d: V9 C" d, j6 K4 S6 l8 r% U
P.S.+ h+ |' K" {. _4 u  H/ {
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?/ \7 b6 D: n- P' @
. H0 Y8 g! {7 @* h
+ |$ O4 W8 c3 N# X2 h( m
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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