Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 8 y& g( g$ W: r0 z2 Y2 p# T; ~

8 c7 u. o% B. T" d/ L
' _8 T& e7 ]# a7 \Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
  `, b0 M, R: D5 w
' v4 a, Y: p, @& N5 A/ k- I# g
) h& J) Q' R/ v8 j: s! oДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.5 M' O2 }. M# y' L0 t% A
Здесь можно:7 [. g& ?9 ~8 z1 L, q+ Z& R
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.6 v* b* T: G' n1 I/ x) k7 r& X

. J7 C0 I9 F" ZНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?1 _7 _6 W/ C  |; ?
Астралия ?
0 R- j9 i/ @+ l7 h# r* S# }! r& i

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:320 @, }3 `2 l) l, C' U5 E" o. T' l
Можешь подробнее объяснить, почему мы проверяем значе ...

' q' O* b2 k2 @8 fПривет, AlexCoder!
4 V$ R( M, g4 S# Y. v! f4 s  GДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.4 Q: E* P; g! @- U1 j" O7 k

1. Защита от некорректных данных8 N: Z1 W8 o: {* `
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.0 M8 S4 w) G. H, k; ]7 z( z- L
Пример на основе Player.java из L2J_Mobius:! b4 E1 G8 p4 q( F5 S5 Y
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    : p; t, Z' F8 @8 e3 K/ ]
  2.     // Проверяем, что новый уровень больше 08 e8 d( W- O4 g
  3.     if (newLevel > 0) {
    ) P6 [9 g* y- `. I! B, r) ?1 q6 h4 W
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    - _4 @. O8 F" y- P
  5.     } else {- \$ V5 e) E: p, U4 W9 x3 @
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    2 |# o9 C* f( G2 o' U% Q/ j
  7.     }+ _1 K8 H  d: M4 U# ?' a
  8. }
    3 z+ I9 B, b; o6 U6 J
Скопировать код
Перевод и пояснение:& n, n/ P. m& w7 e3 ]& E
setLevel(int newLevel) — метод для установки уровня игрока.
9 ?" `7 z2 h+ V% U2 VМы проверяем, что новый уровень больше 0:/ F0 n0 G$ F4 o4 N7 m
  1. if (newLevel > 0)2 h/ J, _1 k6 ]+ E4 c* L
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
+ z' L( \1 O# c/ c: L+ DЕсли условие выполняется, уровень устанавливается
# m5 |5 X' M- i7 m: C" [
  1. this.level = newLevel;
    3 T1 Z: ?) Q* L; M" x- y. r
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
9 _4 @$ h! @4 L5 F4 T  S3 \6 E& ?; z8 @2 _4 K
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    * [: H; q4 E1 c7 N
Скопировать код
2. Логика игрового процесса" V7 s3 y0 {8 ~( B; c
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
. x" I, S' M2 j! H. n* c" LИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
( k$ c$ a- Z. K9 A4 {! V
/ H& V$ _: ^* s2 q  u$ JP.S.& ]4 K2 l6 a5 |1 Z7 @
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
& K6 z% w' Z% z+ o
7 B6 C( T; ^1 f& f- m  g; I! P9 `! t/ W, U6 r9 P
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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