Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
5 R& i' r8 Y6 Q! r7 M( h4 D, [" x3 q- S- x

) G5 L) X4 ^5 C# eШаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
8 ^% T8 C( |8 ^$ j) W! ^: ~# [1 Z; i3 X$ n

: N" d3 ~; Z" l' l4 }4 j% sДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC./ O0 G( c$ q/ [
Здесь можно:
$ w) v/ `+ ]3 k2 w/ i3 U
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.: K) U! P7 O7 k; Z
2 }+ C+ G5 n# j5 W. ~% {
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?  s+ k1 X  \2 v6 t% Q) T
Астралия ?
# F5 g+ G2 \" [& l

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32( p, X9 T# Q3 u& y' K
Можешь подробнее объяснить, почему мы проверяем значе ...
3 H/ m1 d8 [% C
Привет, AlexCoder!8 i# m( t3 ^3 h5 e- k- }! q
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
! e$ C' h! W% a" b' b
1. Защита от некорректных данных
' W" s  d& v5 p5 f# YЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.% p* ?  }- f4 q9 ]/ `
Пример на основе Player.java из L2J_Mobius:, M+ I* @9 {$ V" g. o
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
      u. ]6 ?! ~4 h# P- O
  2.     // Проверяем, что новый уровень больше 03 a; o# h  B5 Y5 t  ?& f
  3.     if (newLevel > 0) {
    ) `; b  N4 J. y
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    8 G% J5 j8 e/ O
  5.     } else {
    & F7 x+ s1 Y  @4 i$ u7 P' s
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");* y, u/ W: |  g$ W
  7.     }/ D) {: o/ S' i) b( q; F+ f
  8. }" M/ {2 {% {) [9 A1 e+ a( M
Скопировать код
Перевод и пояснение:4 c. ]$ o) l- x  R
setLevel(int newLevel) — метод для установки уровня игрока.  X4 ^5 ~' |& c& M
Мы проверяем, что новый уровень больше 0:0 x% O6 T4 v# y5 J% z
  1. if (newLevel > 0)+ b" W- M  w/ \/ u6 l3 d8 Z( x% ?
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).; W& g$ }- \+ w' a' T
Если условие выполняется, уровень устанавливается# `" z  f2 O' O4 ?
  1. this.level = newLevel;! J, Q8 m8 `4 ^. q1 U, Q, K( t
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
: t9 I2 Q. P8 Q3 j. E) G0 r7 d  Z9 K4 _, V$ _/ m0 `) U' r
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    ! Y  h8 r3 e( ]+ ~2 ^6 d+ z, L
Скопировать код
2. Логика игрового процесса, `/ Z! J" ?8 k
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.+ J& D% f, s% g
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.  g0 l% N1 }0 ~8 d# \7 V; o3 ^

  }& `% Y: W8 y: mP.S.
' Z4 @& Y5 A+ `7 iДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
0 ]8 |# g* S3 z2 E& u5 n
: Y8 m8 P+ |+ C' M; u1 S, s
; M" E" E! Z8 \  W" f
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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