Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 + L* a+ n3 r' u5 Y
1 C4 x2 e7 W$ w5 n' M

; K* }4 g3 Q2 i9 q, ^9 R4 D7 `6 k5 Y( ]Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
" x' y8 v) m' @7 Y8 j9 [5 u3 y0 J* a: d
, w1 V8 O# L; t/ Z
Добро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.# B7 L" Q: U+ _/ q5 _& l: c2 |
Здесь можно:
1 E" {, o0 L2 r6 ]- Q0 p
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    # T% S; S$ C: G6 [6 e

8 _, q) J& G, R3 F$ C( @Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?+ K. ^/ w3 h) }
Астралия ?" Z0 R6 |4 j$ I; b) {9 J

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
" \/ s1 c& Y2 Y  D9 YМожешь подробнее объяснить, почему мы проверяем значе ...

) K; G' U! H1 R# K* dПривет, AlexCoder!, N( X# T2 F2 h9 ^* [
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
8 w: Q# Q4 p. K& Y# h
1. Защита от некорректных данных
! N4 _# _3 n' D* {5 [Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.$ k0 }# P* r6 `. I6 y" ?+ _. f) j
Пример на основе Player.java из L2J_Mobius:
# V, d+ ~" h1 l4 n) K1 a
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)) h  A- r' y+ h
  2.     // Проверяем, что новый уровень больше 0( D* I+ P1 e3 ?1 o) x: ~
  3.     if (newLevel > 0) {. F7 b) y, l4 \! R  c
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    ! P8 a2 B2 R" C3 _
  5.     } else {
    / s9 T0 A# a) K6 E
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");! w  E7 G; \9 X7 k' Z# T: h' [2 d
  7.     }
    5 B, n8 k  k' v
  8. }) B# u% G9 g+ G$ A
Скопировать код
Перевод и пояснение:! R* U  |, c  U- K3 [
setLevel(int newLevel) — метод для установки уровня игрока.) O  I7 T5 O$ z0 b9 c  \6 i
Мы проверяем, что новый уровень больше 0:
* Z- ~" S$ }; d4 h% j
  1. if (newLevel > 0)% l$ v9 m* E% j/ a; M( O2 [
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).4 D5 G# u* ~- Z
Если условие выполняется, уровень устанавливается
# a0 a8 Z8 m  i$ b1 R
  1. this.level = newLevel;
    * x  F- C! n3 t2 g  d
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:5 |# g, R3 _% h$ R9 f3 V
" e. V+ w8 z6 ]! R$ Y0 z" ?; b
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");# X6 }7 {  s# @1 C2 l
Скопировать код
2. Логика игрового процесса
2 c+ r1 z+ k, m. ^Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
& r1 C. N+ l/ G# \. }Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.5 V/ q9 e- B7 t- t

' N8 h5 J2 A6 D6 |1 wP.S.4 G% r+ F) z/ s9 t4 m# ^3 y$ W
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?6 `1 ^, P! P- O' L/ k

2 f+ D+ q( x2 L" N7 C2 o3 _. V/ ]/ M! E: [
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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