Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
5 I& z5 `2 P% U; B0 m4 P; @: W$ _6 Z4 f' U) D
4 s' C1 x  E5 s6 F3 \
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius4 R0 z: f; b* f+ T

! F8 z' O4 S7 e% w% ]7 h: _2 H! Q  @) `7 @. `: }. L/ P& L9 p
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.0 ~% X* i* S3 W# D% D7 l
Здесь можно:3 N# E* [3 M; f+ J) K& H
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    ) O$ p" |' @' W0 w" H; t9 X

$ h! }: I5 c: l7 u/ A. i7 [! e  A1 ?Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
9 }8 J7 E% |6 m; a# ~# n# `4 GАстралия ?
5 A8 J' Q- L2 Q* G! x5 @  {" ~( s

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
7 h) l7 X6 r+ N' KМожешь подробнее объяснить, почему мы проверяем значе ...

- {, A) w$ x( @, \Привет, AlexCoder!
! W) u% ]* X, G) w) S2 a3 mДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.* o, i( U! @1 l6 M0 `' X' R

1. Защита от некорректных данных
1 f+ C: W' {. I* a" B% iЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.6 C1 J# F7 @* `# z5 C
Пример на основе Player.java из L2J_Mobius:4 _# V" D& z) m" ^: O( C
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    3 C6 j( O& a! m
  2.     // Проверяем, что новый уровень больше 0. k; s; N; A+ {+ [
  3.     if (newLevel > 0) {
    0 r7 J$ r2 ^' Z5 n( H/ P4 t+ c
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    4 U& Z/ f' W: C3 y$ }0 O& @8 N
  5.     } else {
    9 o- U7 S/ n- z5 s8 E
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");1 J% r* x5 V4 w
  7.     }
    ; x3 N. s. t2 G
  8. }: ?7 x6 q, n+ l  q
Скопировать код
Перевод и пояснение:* R! z1 G7 D: o) P" A. e1 v2 Y
setLevel(int newLevel) — метод для установки уровня игрока.
  m+ B0 B! f6 r6 g9 i5 ^0 jМы проверяем, что новый уровень больше 0:; x7 @: M) }& R
  1. if (newLevel > 0)0 h2 ]# }; \' m1 L9 ?" H. a
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
8 r$ v4 V* `3 r; Z: DЕсли условие выполняется, уровень устанавливается% y! n3 @. P7 t8 E
  1. this.level = newLevel;$ ?! C, g4 s  ^+ }
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
4 g" ~; X  ]- I3 }5 U
. q# y3 z& a1 M  V5 }; t  f4 [8 C
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");! A' m6 r7 y1 ^& |. a" ?; @0 a: w- X' k
Скопировать код
2. Логика игрового процесса
9 p9 n) t( R0 S7 K  y2 oПредставь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
( W  ^% m0 J* ~) o. q7 J) PИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
' W% O$ j4 e) w/ T1 A# m0 E) o. Q$ U1 ^. H2 i8 M- ^2 G: m
P.S.$ B) h) [  \& Y8 F; d" K
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?5 q( r# }! J4 o( W9 i/ n" ^4 y
+ \1 }' s9 {- U; i3 y+ T+ K
* n# u  U3 N$ X5 Q: ~# V7 l
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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