Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 / R' z$ S6 `" g% D" w, ^2 Y" k+ t
1 D' ]. ?& w4 c
- y5 R) t# w* p* b" G0 C
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
4 p( ]; ~. u* B5 o7 m# X
( ^% |+ y  h( Y! x
% A# ^) V: I- Z2 HДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.- K# k9 R4 G6 b
Здесь можно:1 q: i7 X; _4 J* L5 v+ `: f1 Y
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
      }! x) m# s0 H& {
. x- d- L, _! {9 K0 z
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
: x7 P5 e5 M" a6 B% l2 eАстралия ?
! s( S4 v- K! @, M4 E

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32" {4 r+ r8 c4 F1 u# r0 {3 v
Можешь подробнее объяснить, почему мы проверяем значе ...

$ ~8 k. a; \8 Q) o- Q! K+ m) tПривет, AlexCoder!
/ X9 V# g1 w8 q  f9 S1 Q! g- mДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.- Y5 }/ y: T! h- ]/ _; p: w

1. Защита от некорректных данных# ^  B+ w2 F4 e5 ]5 O- T9 c
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.8 k  |% M- v* M% i/ T
Пример на основе Player.java из L2J_Mobius:! f  q" Y, B/ M# ^
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    ; ]  S* m. C8 j
  2.     // Проверяем, что новый уровень больше 0
    4 R- _1 c! V0 ^* e! p
  3.     if (newLevel > 0) {1 d) ], ^+ c) e0 P- L/ J  H
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    % \2 P: R4 U5 `  g. U
  5.     } else {5 X) u4 a7 g6 s% |6 O% P. c! T; M
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");4 g& Z6 C  D- A$ ]# T
  7.     }
    # |( n! I1 ~0 J# q' ]  U* s7 p& i
  8. }0 m9 G8 A( S/ Z2 Z* D# q4 K
Скопировать код
Перевод и пояснение:
. t& M. L1 M) W' K( a. C) msetLevel(int newLevel) — метод для установки уровня игрока.
; Z0 S: W, |/ M! c" M0 U6 SМы проверяем, что новый уровень больше 0:
/ y4 Y; H9 e  o0 _
  1. if (newLevel > 0)
      M! K0 B9 {; L- a1 Y# T; r
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).6 T; w1 p# D6 X- {% F) C
Если условие выполняется, уровень устанавливается
$ x) O! }# p% Y6 a( }1 [: q6 r
  1. this.level = newLevel;
    2 Y; T- R, M0 n0 u) n- T. d
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:1 j6 J# B; W$ \1 B5 c3 \- ?7 U
+ U. j& k( `4 p+ U+ g
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    9 o: V: ]' u5 H  J! E
Скопировать код
2. Логика игрового процесса
% _3 X5 Q1 \' K# r6 M- Y0 d. \Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
) ^- ~* g( x: }* K9 L/ Z% }" dИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.  E- o9 P) Y6 e, }2 i
3 g* N. h$ F% P6 N5 {8 @; z
P.S.
8 y0 Q' R  y7 eДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?: I. J& A1 m- q* n

' c% a; p, m6 [4 a5 u3 N, p) ]$ t# M3 K6 t  Y
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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