Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 ' T, s, X; c- W' Q
1 ?; }" e6 W# F+ p, s

' o9 f: G# `; @Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
- I& x$ z) E; _4 @5 g( \& y
5 `* i( f7 _; F
1 S2 k/ D+ [$ bДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.
; }' ^3 i, K  r. \5 |: l) d  ]2 t% z5 kЗдесь можно:: K  _: Y# h$ |' _0 _' H
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    , |: s9 M7 Y) x

" ^5 b4 S. V; ]Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?
: |) }8 D0 g# \Астралия ?
0 h) b7 Q' }$ q9 S( n% a

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
/ z- s, C$ \5 J; ^# r2 \Можешь подробнее объяснить, почему мы проверяем значе ...

- @$ R" ^3 Z0 F: }Привет, AlexCoder!2 C3 ^  @8 b" h1 P, H+ e- q
Давай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.
3 H& j2 }: c4 S) V& a  p% Q
1. Защита от некорректных данных
2 S' x& ^7 g9 X, A1 L8 l$ xЕсли мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.
$ t! I9 \" _; ]  g2 [8 tПример на основе Player.java из L2J_Mobius:
9 l7 M" Z) J6 w7 X/ m$ u
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень). H( G+ E# {  F( t, _
  2.     // Проверяем, что новый уровень больше 0+ z: u$ y0 [" n; I% n! ^
  3.     if (newLevel > 0) {% @5 _; W$ c' U( {: v/ q( V5 o- d3 p# B( j
  4.         this.level = newLevel;  // Устанавливаем новый уровень8 m" Z' K5 S$ \7 u! R3 t
  5.     } else {2 }4 m+ P; T4 T) A) l; z
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");0 ~' N8 [# ]2 @2 h3 @/ ~- _$ C
  7.     }
    . D5 b7 d8 y0 m# I# k1 p" N$ b( {
  8. }
    ! F; n8 ?: z/ U6 k9 g
Скопировать код
Перевод и пояснение:6 d# d9 W! t8 b2 Y' d  A
setLevel(int newLevel) — метод для установки уровня игрока.1 M; `8 A' H! {, [+ Z8 I( [
Мы проверяем, что новый уровень больше 0:
2 A. o; J' I& z
  1. if (newLevel > 0)
    , H; ?3 W9 j! d3 F1 Y2 M  f
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).+ e% l! O0 c, |; d, m4 `
Если условие выполняется, уровень устанавливается
$ W& d! a/ m7 U0 u- R$ f- N
  1. this.level = newLevel;
    & Z+ T7 `% x( m& z+ _
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:# }# l* F" [, a# t. u3 }# I

+ o9 [3 g3 {! ~6 H% ~$ e
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");
    7 }6 }9 S7 w0 U2 V: B
Скопировать код
2. Логика игрового процесса& W' [& ]7 C! I2 o0 F" Y3 t3 [
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.% z8 S' `8 m/ y6 H+ |
Итог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
4 R. G8 ^1 i0 D1 H3 G/ w# D: r7 X( }3 [2 Z' A
P.S.6 \0 _2 l/ u! r# t) t; z4 G+ a
Даже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?
* H( l9 n% ?5 h' g) t! ^( b2 I7 k$ \- ?2 A& \
& {( H3 X! @% u! |& [; e
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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