Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
" A) H# l. P7 |8 Z" R% p3 l% s' K6 u# z  R/ |( `$ D

* ]7 A' P* ?4 I: mШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius, ^0 d( L# J  P: G5 `" A

0 ]0 F4 `4 C: ^+ o  ]. ~; g
, O; @7 p* w3 D" Y( UДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.; G4 G; E2 R% ^. C1 P5 p0 F  _, I: n
Здесь можно:) q& v# {3 U( X  i
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.6 O2 T/ s% c. ]6 k4 [

* z# m% g# E) _0 u1 XНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
; j" V  n2 b: `4 l; F0 J# pАстралия ?; S9 d! D0 Z' ]. W

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:328 ]2 g; Q  n# q' m5 Y4 s; }
Можешь подробнее объяснить, почему мы проверяем значе ...

; M2 W! [1 |2 M# g3 l' `Привет, AlexCoder!4 s0 Q3 j* Y2 I3 P) {
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
1 G, g; \. D9 H, ~4 b9 u
1. Защита от некорректных данных) }2 d/ C) _4 B* n
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
4 q9 d! l- R& S' c8 QПример на основе Player.java из L2J_Mobius:7 I* i6 W% x# O) G& j/ b% S
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    " n& z2 o9 P3 j3 X/ o& f9 b
  2.     // Проверяем, что новый уровень больше 03 i2 Y2 u5 t% k; w4 L
  3.     if (newLevel > 0) {
    : @5 g! W2 j# D. o1 s) t. X
  4.         this.level = newLevel;  // Устанавливаем новый уровень
      p8 n* r1 Z8 R* E5 K# ^6 @! _
  5.     } else {0 X# H' i! R5 |
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");" B  H1 m& a. d+ z) v
  7.     }
    7 [; e2 p9 m$ N! }: x2 _  s- C$ W
  8. }+ B3 A2 _6 S1 ]5 B! w
Скопировать код
Перевод и пояснение:4 E  d0 a2 M  i: m# `, r# a! ?
setLevel(int newLevel) — метод для установки уровня игрока.6 a: V9 D6 \/ T' _" P' {; c' l
Мы проверяем, что новый уровень больше 0:
) ^- ?5 W2 J; M/ A8 N* F- V
  1. if (newLevel > 0)! ]! W3 u! i! L! Z3 ]5 f3 _& b
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
5 q% V& x) |3 s$ J: @5 ]9 {Если условие выполняется, уровень устанавливается( s2 g3 q  L2 B# @" H8 i
  1. this.level = newLevel;
    ! K; a  N, A6 G3 w2 |
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
8 g) V+ n( T6 s9 ?
  {, L2 b3 L- |+ F
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");% q5 g! [' x" k/ V# A8 S
Скопировать код
2. Логика игрового процесса0 l1 R) q  E5 X, \* g& r; O
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.0 w& X  a- F  _9 q  R6 D6 |; t
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.+ E/ v/ e$ ?: i% q: B1 z- ]- Z

+ f9 |* x9 L; J) f: HP.S.& H8 |0 s( ?; K" W7 Q1 G
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?1 ?' w8 r5 Q: N

% B5 ^- S6 g+ N2 y8 q* o: F
6 O" {$ _- ~& G) k# N) K. o4 X
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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