Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 3 V  w2 B. H% V* [+ d  {% \, a$ N

5 f) M4 x4 i# o; \! L9 h! P9 M" V, [( R5 D
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
7 x/ d) |" G0 U% y& Z3 y" }7 C4 ?- x7 ?4 {+ R2 L

7 `( \& @! @* N8 oДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
1 m. X6 `% C* CЗдесь можно:
6 Q+ h% J4 T" O* P: D% H  \$ F) r
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.; S- q, M( p/ q( }+ v$ G! T

3 N- s% s, Z/ r) B  [5 b" E8 fНе стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
9 V- V. x* b. M- @# K/ z  E+ E4 wАстралия ?& w% u& h  q5 Z( o1 y& e3 W+ d

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
  Z5 D! Y) H$ j, L4 P, Z0 y' pМожешь подробнее объяснить, почему мы проверяем значе ...
; ^5 d1 T" `& b2 t
Привет, AlexCoder!0 U) r! N$ ]1 T* u
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
! w& K; O( y1 i6 r* \& s
1. Защита от некорректных данных
* b0 X, w" ^* MЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
; n4 c3 o) y0 L: o0 U5 f9 W: b2 _/ iПример на основе Player.java из L2J_Mobius:$ A! L, U! l; R2 J4 Q3 `1 `) }
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    + t2 C: Z/ B9 K8 d
  2.     // Проверяем, что новый уровень больше 0
    " [3 L# I, z6 Y: G
  3.     if (newLevel > 0) {5 W- {; E3 f8 R0 C: {! o
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    " t9 ^. A( V  \+ F" c- v. Y
  5.     } else {
    % ]' N6 |. @9 ]2 m+ S: b  ~
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");
    8 H" b: R( e: y, z/ E
  7.     }
    " f4 n" |2 I+ ^5 Y" d
  8. }! A) j3 w3 E$ ^; ~" H
Скопировать код
Перевод и пояснение:0 c- c0 t+ X9 \7 F$ r2 m
setLevel(int newLevel) — метод для установки уровня игрока.
2 g7 p1 S% I( x! N/ E- ]Мы проверяем, что новый уровень больше 0:4 N& e5 o0 V7 \3 X* Z: [
  1. if (newLevel > 0)* J0 b8 Z6 {, O
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).
( v) ^% A4 G: d! }0 }! p/ `% |Если условие выполняется, уровень устанавливается
/ R, z2 W$ S' z
  1. this.level = newLevel;( e1 g/ u2 H) J. {+ R* A
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
+ S4 f7 p% g$ r* e. R% X6 F3 l+ E$ K  U/ [
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");# I: O# N( y; S- h
Скопировать код
2. Логика игрового процесса* C7 `7 y# I$ B$ e! e
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
! }% Y: g( D3 b6 \" p* ?8 L9 iИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.# n5 n8 `" l! x# M# p. Z

+ B  Y! ~/ _. iP.S.
2 \  A  w7 m* CДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?  Y) R1 @  y2 i% g0 y0 l
+ _5 ~5 g9 w7 C' C( |& g% O4 v: X

% w  t! \- d: j, T
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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