Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 # x  D! ^" Z% |/ ~. c' }1 `- D

0 b$ T* H/ v9 W3 T9 p, P$ t: Q8 _! q9 w7 j6 m7 ]! h5 |$ _
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
# U# G; B6 c' |+ m* t) k0 q2 \' L- o$ T3 M+ D+ l
; Y# y- s% R7 k( k
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.3 Q. O# J% R& k/ a1 N% C* K( r5 g
Здесь можно:2 u2 ~! D2 A3 J4 u2 g3 H
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    ( r  Y: x) w* H1 k9 F* c( }9 B
3 k" A' ]4 O- ]! r. {% s% s
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
4 f8 X; r% s* a& d0 vАстралия ?. A/ S1 I6 ?; @/ b

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32- J7 j+ M% D+ X3 k. f. p0 F
Можешь подробнее объяснить, почему мы проверяем значе ...
: Y. b$ W, D5 s8 y
Привет, AlexCoder!
3 Q  ~; d  h3 o* r, G6 XДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
+ K# N* F1 G+ v6 }( X1 s
1. Защита от некорректных данных; Y# y7 u8 w: r5 t# p' H" W8 E
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.$ C6 K0 g3 I$ x6 ]/ J
Пример на основе Player.java из L2J_Mobius:
- @7 |  m  Y; i+ c8 p' |
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    3 c' F- S% o7 S0 ~! n
  2.     // Проверяем, что новый уровень больше 0% O! t: j, F/ ]/ a
  3.     if (newLevel > 0) {* m( z9 R; X: p
  4.         this.level = newLevel;  // Устанавливаем новый уровень, e  O5 ?, ~& o" C% o0 M' ?' ^# l" ?
  5.     } else {- d8 D  n) x6 P! I
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    ! M4 \+ I: j+ L. E: D
  7.     }- g: [8 B" h, J. Y1 O. G7 o
  8. }0 [# J2 C, Y7 T# J
Скопировать код
Перевод и пояснение:" w* W3 R& J9 a: E8 Y
setLevel(int newLevel) — метод для установки уровня игрока.2 ~/ R" a4 n$ D. u7 z
Мы проверяем, что новый уровень больше 0:
& u3 L: F+ a% e. B
  1. if (newLevel > 0)
    0 n, d0 ?, L. a9 |8 |7 o
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
; t% F# p2 i6 h- g: G% e% YЕсли условие выполняется, уровень устанавливается1 I/ v3 H$ U7 I) H. z. S. K
  1. this.level = newLevel;, W% S9 a, v) ?5 g* q5 q. [
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
5 Z7 @# h4 ^; y
2 l/ z! r4 }) |) `3 O7 B
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");2 \. m* |4 @9 f, z/ q1 O/ S) T
Скопировать код
2. Логика игрового процесса
$ w: x4 E7 I/ f4 c. `Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре./ r6 y! e3 s+ @" b
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.$ E" y  X: d/ V2 h9 b8 A

2 l) m9 j& c$ o& i5 m8 b- {P.S.- |# o* V. i) i( X
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
. U$ E2 ?& d( p6 d
6 `  [: \+ G& t7 l) t. M0 P' ]2 g- K( s, C+ d
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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