Top.Mail.Ru

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

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

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

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

x
Последний раз это сообщение было отредактировано Astraliya в 2024-10-17 21:34 % `% _0 i& @7 u# c
( |# @2 S1 t8 K  ^( x) V4 l
0 O0 m6 B6 i  ~" ?
Шаг 1.3: Продолжение темы методов и инкапсуляции на примере L2J_Mobius
& H7 ^, i, h- n, c- M( t9 {+ }6 X! X- `1 u3 b; F

) F( T) _: o: l# S7 cДобро пожаловать в обсуждение третьего шага нашего цикла статей по разработке серверов на основе L2J_Mobius! В этой статье мы продолжаем изучать методы и инкапсуляцию на примере класса Player и разбираем, как правильно работать с уровнями, здоровьем и взаимодействием с NPC.6 O0 I; D, R- A. [" ^1 _
Здесь можно:; m4 k5 u9 K, D
  • Задать вопросы о геттерах и сеттерах в L2J_Mobius.
  • Обсудить логику проверки данных в методах.
  • Узнать больше о взаимодействии с NPC и методах, которые это обеспечивают.
    ' F/ r3 N' [# J. d
! `. X* Y( i7 p, Q! [& l
Не стесняйтесь делиться своими вопросами, предложениями и примерами! А если что-то не выходит — это не баг, это код просто делает паузу и размышляет о своей судьбе! ?6 z) k" P+ R$ n- T. {% B# T
Астралия ?
" s( J8 F3 `3 J$ _  [4 Q$ i- _& i

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

AlexCoder Опубликовано 2024-10-17 22:32:08 | Показать все сообщения
Можешь подробнее объяснить, почему мы проверяем значение уровня в методе setLevel() перед его установкой? Почему нельзя просто присвоить любое значение?
 Автор| Astraliya Опубликовано 2024-10-17 23:00:07 | Показать все сообщения
AlexCoder опубликовал в 2024-10-17 22:32
7 A" G8 l, u+ UМожешь подробнее объяснить, почему мы проверяем значе ...
; a& R9 z# R! Q9 v7 F
Привет, AlexCoder!
* ?, l) q/ J8 `9 Q/ |& H3 tДавай разберём подробнее, почему важно проверять значение уровня в методе setLevel() перед его установкой. Это связано с защитой данных и соблюдением логики игрового процесса.0 h7 [/ h, d7 F6 ]5 S) t4 k

1. Защита от некорректных данных: y7 c: z  M, \6 V
Если мы не будем проверять значение уровня, можно случайно присвоить игроку отрицательный уровень или ноль, что нарушит логику игры. Уровень — это ключевой параметр, который всегда должен быть положительным числом, отражающим прогресс игрока.5 X( q! v) Z3 |/ W5 a/ G. B" f6 H( m! L
Пример на основе Player.java из L2J_Mobius:# ?4 B  k% B( o$ ~
  1. public void setLevel(int newLevel) {  // public void установитьУровень(int новыйУровень)
    & z  o# z' d/ q' z2 k9 p5 C
  2.     // Проверяем, что новый уровень больше 08 U9 j# z6 Y9 Q9 K, U4 A  S: X
  3.     if (newLevel > 0) {
    4 t* w& T3 a# `0 o: [% }& @
  4.         this.level = newLevel;  // Устанавливаем новый уровень
    6 P0 J! |1 g3 a6 Z! G( M- W' w
  5.     } else {
    9 Z$ K* M6 x4 Q& N: {
  6.         System.out.println("Неверный уровень: уровень должен быть больше 0");0 ?6 d8 |5 O2 s% Q( z3 u
  7.     }
    6 r: y: [" A/ r" n5 {
  8. }& J2 z: w# z( a) u" X+ U" V# ?
Скопировать код
Перевод и пояснение:8 D, }& s$ |/ S3 k  ]0 a" x! _. d
setLevel(int newLevel) — метод для установки уровня игрока.
2 d, f1 h: p! r2 b% AМы проверяем, что новый уровень больше 0:( l9 a% }6 c3 c& g6 i
  1. if (newLevel > 0)
    % c- |! k! _% A, _3 {
Скопировать код
Это предотвращает присвоение некорректных значений уровня (например, отрицательных или нулевых).  y+ R* p% a8 y5 W. l  p6 U# I
Если условие выполняется, уровень устанавливается( p& W4 A( y$ S/ D
  1. this.level = newLevel;
    $ C$ m5 E( Z& i+ q; R8 ]/ I4 c
Скопировать код
Если новый уровень меньше или равен 0, выводится сообщение об ошибке:
' I& y; L3 ?; x4 m  I3 w; |; b8 M7 y  G* ^
  1. System.out.println("Неверный уровень: уровень должен быть больше 0");! S3 V( U5 L  @& d& \( c
Скопировать код
2. Логика игрового процесса/ r; l4 u# O. A3 R3 y3 i- x4 D3 s
Представь, если бы у игрока был отрицательный уровень — это могло бы нарушить баланс игры. Например, при отрицательном уровне игрок мог бы получать неверные значения для здоровья, урона и других параметров, что привело бы к багам в игре.
- V) g& m, L5 \- z/ xИтог:Проверка значения уровня помогает предотвратить ошибки и поддерживать корректную логику игрового процесса. Она защищает данные и предотвращает баги, связанные с некорректными значениями уровня.
4 n6 `8 D: h% C7 u  I2 }! U* P: `* h% O$ g/ @
P.S.
* |0 E# Z2 N9 f5 O3 M' BДаже если у нас не получится "прокачаться", зато будем уверены, что наш уровень всегда правильный! ?0 G) `' \* W; b

. g% P% y/ m0 W0 s8 V" E- F1 ^$ [1 h7 B+ w6 k
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

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

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

подписок0

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

постов9

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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