Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34
% a# e# w: C+ k8 i1 B/ ]7 ]' U0 C

( }" k$ S$ M  M8 |Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius1 D+ H4 f/ L, H- x6 Z# d2 s

2 a8 ]- Q, H5 S# r+ Y# {' t* e  ?9 R- h1 G7 h# l0 R; x
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
2 S9 b, V* N0 x6 ZЗдесь можно:5 @- _7 \& Z# W# t
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.' L9 g* A" C, V5 B) Z% r# I

4 C6 H% r) {+ j/ S3 uНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?, ?$ B1 A; i$ ~! h7 n1 G( p
Астралия ?: c" j0 ]4 C8 L2 k7 d

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
9 x3 r- S7 p  N6 ^: T% O( eМожешь подробнее объяснить, почему мы проверяем значе ...

/ w  G$ `1 T6 }Привет, AlexCoder!
% x( z2 h3 X. }: L0 a) [* b" j/ h# LДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
& k- V& E" A1 t6 U0 V, n
1. Защита от некорректных данных; {7 `' X( c0 F+ w, ?! U. z
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
3 y  v. d; P' d  L6 xПример на основе Player.java из L2J_Mobius:6 c' v/ \! n! J- T; Y6 R6 V4 t. S
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)% y4 ^* \4 j/ Q* S- L8 y% E
  2.     // Проверяем, что новый уровень больше 0
    ) o' \, J6 @; t
  3.     if (newLevel > 0) {9 o# m0 [. D" p& Z$ k- N3 ~4 H5 O
  4.         this.level = newLevel;  // Устанавливаем новый уровень- q% R! |, f- N1 O  q) J5 M  Z6 N
  5.     } else {
    6 ^% w' f# ^8 ]( ^7 G
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    8 |' S, G3 x! z# v& O) J! ]" m
  7.     }
    3 i$ p. R6 \# u
  8. }0 V7 X8 F; G5 r2 O& f9 i. W
Скопировать код
Перевод и пояснение:
7 F. [4 u) N  ssetLevel(int newLevel) — метод для установки уровня игрока.
/ ^! i7 o: i. xМы проверяем, что новый уровень больше 0:3 H3 N* y# j$ Q
  1. if (newLevel > 0)
    3 L3 c' V4 _7 L
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
* E  A, n# q4 F6 b  ~- t8 dЕсли условие выполняется, уровень устанавливается
. f, N& @* X5 S7 L
  1. this.level = newLevel;
    $ d1 I8 \1 I3 H' p! x- t6 l3 t2 B/ j
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
6 t* H: a  Z+ i! }1 w; x
. D8 L* |8 k& x" t/ Z
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");6 Z% Z- C* d/ f0 G9 t
Скопировать код
2. Логика игрового процесса& _& y4 K# D+ s- P* B; z* S9 i
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.1 A- j6 z& O5 J: l1 }: \: i" t
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.5 m& m+ m8 Q# X/ i1 ]6 E4 U% s* Z* K
0 V2 X6 |# {8 i$ H; o! i: c3 l" M/ r
P.S.
0 _* D3 Q8 l# EДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
( R0 v# h5 C' ?: W% J6 W6 d, y' }& l( U4 B" A" D. B; z* C$ b
3 a9 R  q+ K; s' r2 Z6 I
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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