Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
9 G# T7 o6 @" H
  Y+ D" G2 R8 ?( ~( N7 N# Q( j
, u+ Y/ o- \3 z  d  K5 |% yШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
) e8 W% l3 h+ E2 M6 X1 S
. N/ d) H) y2 z, Z. l. ~& n
' u* O  A+ N& a* w' [  D% G4 f% dДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.3 A! o0 i8 I( S1 O. h
Здесь можно:% C0 v' I; ^% V) i7 D. P" R" X9 e
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    4 o* Q3 Z, K9 C1 P. y& b( Y3 {( Z$ S
( H2 f" L" i# H5 w% w2 E( C$ f; O
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! 😄0 H$ ~4 U' T* P' y; V( s# ]3 [
Астралия 🌟2 x" R( ?+ |0 e& ]2 y8 ?6 t( M

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

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

: r  J2 s, j1 RПривет, AlexCoder!! e5 B6 y0 C; F( m5 }8 F. f+ S! o: I$ }
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
4 V1 ^( J* }5 W
1. Защита от некорректных данных
( C2 i, T# F& `) G: X8 h0 K7 ~Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
+ E7 G/ V) D. B: T6 p3 LПример на основе Player.java из L2J_Mobius:
2 h2 c$ S$ K; N/ Q
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)8 V  t" ?# @# P7 |
  2.     // Проверяем, что новый уровень больше 0- Y/ ^: c$ [( f" a
  3.     if (newLevel > 0) {- F/ L2 V0 V* Z7 }6 S: R% D) y6 C7 t
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    # }: j0 m8 W# b$ x$ Q
  5.     } else {
    3 D, I6 O; ]4 D
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    4 c$ X* ]+ r: W" U3 t6 N0 a& t
  7.     }: K- v! l8 F( R1 t9 ^
  8. }
    # x0 Y8 M) J, [1 i. c4 ]$ n+ P+ t
Скопировать код
Перевод и пояснение:
5 {/ w* Y$ F* }* Y: k1 bsetLevel(int newLevel) — метод для установки уровня игрока.
  u! B: B" f  `4 |- XМы проверяем, что новый уровень больше 0:
2 |; F+ l! u0 N& Y3 O
  1. if (newLevel > 0)
    : ]& k$ g4 K+ O8 j3 i/ V
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).2 A6 Z4 ^1 g8 o( {4 g9 a2 G
Если условие выполняется, уровень устанавливается
+ X( |) S$ N6 q6 d* U  A
  1. this.level = newLevel;% H. t# O7 _+ \" r2 ?' n
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:  C1 Z4 x0 ~9 e+ {" r7 J3 K6 V

! ~; @% k" N9 ~- l5 ]( C
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");; r0 Z1 R1 T" l& P
Скопировать код
2. Логика игрового процесса
# k  F7 [+ O$ a- ~Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.% h3 i0 ]3 A0 }/ p/ _3 n! M/ d! }+ e
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.: K$ D$ |+ C- d  Z* b
2 S# ~0 k9 K( E& H* S8 R
P.S.3 S5 v4 s1 r* w/ t" L' ^
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! 😄
# v+ J9 _0 k9 x
/ c2 C/ H2 H0 q: I+ i7 M, _: v" Z2 O( L1 k! K. I1 e; g- t
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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