Top.Mail.Ru

[Руководство по Java для L2J] Java для серверостроителей (L2J) или Учебник Java простыми словами

[Скопировать ссылку]
admin Опубликовано 10 час. назад | Показать все сообщения |Режим чтения Распечатать Назад Вперед

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

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

x
Java для серверостроителей (L2J) или Учебник Java простыми словами

: I) K, h8 \' A. d- ]$ M) C
Подразделы/темы:

) |/ g/ t( N( p$ @' }* a
  • 🔑 Ключевые слова Java (с переводом и объяснением)
  • 📦 Структура проекта L2J (пакеты, классы, файлы)
  • ⚙️ Работа с конфигами (Config.java, ini-файлы)
  • 🧩 Объекты и методы на примерах из L2J
  • 🔄 Циклы и условия в квестах
  • 🛠 Исключения (try/catch) и обработка ошибок
  • ✍️ Примеры кода с переводом (AstraConfig, AbstractAI и т.д.)

    6 Y( O; ?1 v9 e: p' r
5 \% G8 L1 w' g* ]* C' B, k2 p
8 ]- S9 C9 D$ c5 W1 e) q: D
📌 Ключевые слова Java (с переводом и объяснением)

7 p( U1 I) {( W6 t
& s6 `+ n1 z7 `' ~% ]& B+ V" b$ f: n5 y9 Z$ |0 T) D4 F. Z& V

% z0 _( ]4 n+ X) T  [! N; S' T) n# Y" Z/ P' g6 m
/ y  h0 E4 I1 x

. V* s2 t+ v+ U% ?, i+ e4 e$ E8 `4 j2 M' G, f. ~
8 H, b5 }" i' S7 U! w5 K

% _* G# e! v& [0 j% _9 E+ ^0 s9 }. c( B  R
- n  X( w1 R) w- |5 R8 Z5 A
% f8 W% Z6 C% z

$ ?; L3 e4 e2 x% K  J: h- J1 [# ~. ?( O" v4 o) `
: ~& r. y  @+ s

! C5 X0 o: c# }4 g. M3 D, g4 ~

7 X8 L9 ^# h8 i; z4 p6 t3 ]2 J9 y6 f& {/ O7 n

' e' c" ?4 h* m7 P5 |; ]  C4 ]8 M) L' Z. b1 ?; x

. D' [( Q" M5 e- q* u2 ^6 a) t0 \0 t$ j" [- J- J* J
0 t9 g4 |* ?6 B
. c' @; j* @& w# q# V

' ?; P1 x  S/ f- y7 |+ i$ \4 i. G+ B, q% F* @: A  r
+ S) l$ A* C: n* H  W% r

  m0 @/ G+ p: y1 B/ o7 x- l+ o
8 s1 {* P$ D2 Z$ p2 [9 i% y: N
9 E  m! p6 F, D, f! l
# g3 Y, s3 O3 O5 b6 Z( w4 @- X0 n) t- `7 U1 N
4 Q3 [4 Y- D& v' g2 V
Ключевое словоПереводОбъяснение
classклассОсновной строительный блок программы. Описывает объект и его поведение.
interfaceинтерфейсНабор правил (методов), которые класс обязан реализовать.
extendsнаследуетКласс получает свойства и методы от родительского класса.
implementsреализуетКласс берёт на себя обязательство реализовать интерфейс.
publicпубличныйДоступно всем классам и пакетам.
privateприватныйДоступно только внутри текущего класса.
protectedзащищённыйДоступно в классе и у его наследников.
staticстатическийОбщее свойство/метод для всех объектов класса.
finalфинальныйНельзя изменять (константа, метод нельзя переопределить, класс нельзя наследовать).
voidпустоМетод ничего не возвращает.
returnвернутьВозврат значения из метода.
ifеслиУсловие.
elseиначеВетка, если условие не выполнено.
switchвыборПроверка на несколько вариантов (как меню выбора).
caseвариантОдин из вариантов для switch.
forциклПовторение действий с счётчиком.
whileпокаЦикл, выполняется пока условие истинно.
doсделатьЦикл, выполняется хотя бы один раз, потом проверка условия.
tryпопробоватьБлок кода, где может произойти ошибка.
catchпойматьОбработка ошибки из блока try.
finallyнаконецВыполняется всегда, даже если ошибка произошла.
throwброситьСоздать и выбросить ошибку.
throwsможет броситьОбъявление, что метод может выбросить ошибку.
importимпортПодключение внешнего пакета/класса.
packageпакетГруппа классов (как папка в проекте).
thisэтотСсылка на текущий объект класса.
superродительСсылка на родительский класс.
nullничегоОтсутствие значения (пустая ссылка).
true/falseистина/ложьБулевые значения (логика).
intцелое числоТип данных для целых чисел (1, 2, 3...).
doubleвещественное числоТип данных для дробных чисел (1.5, 2.75...).
booleanлогическийТип данных: true/false.
charсимволОдиночная буква или знак.
StringстрокаНабор символов (текст).
enumперечислениеНабор фиксированных констант.

+ v& @* {& a9 h; j# P/ z/ R  h5 E# |" @

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

 Автор| admin Опубликовано 10 час. назад | Показать все сообщения
📌 Примеры кода Java с переводом на русский+ }: R6 M4 i' _
- w5 d# E  G( h( l
Пример 1. Объявление класса и переменной6 }( B, K- K" b& n+ a7 n

  1.   G5 A9 t% @  I: f' `
  2. public class Player {) z- l' v! i. M) n9 G, A% L( k; y
  3. private int health = 100;! K* L* M" U+ O  M
  4. }
    ) Y' O% Z9 c! u8 Y4 {' G8 m1 N  |
Скопировать код

5 X0 n4 @- @2 l5 ?, C; N. R- `
9 n# H' ?& [+ S* V* u# N1 k🔎 Разбор:
2 T% Z* k1 g0 R* G" ?
  s! Q' c2 H' A# m. ]  X7 u, g8 |8 hpublic class Player — создаём класс с именем Player, доступный везде.9 [4 a; q, c7 v3 Q( D0 w- T
  }7 ^$ H$ Z8 x7 {- P9 `0 |! c2 i
private int health = 100; — внутри класса есть переменная (поле) health типа число (int), приватная, начальное значение = 100.8 }; P; p1 @5 |( G/ i: T

( V0 q& ?6 f- L# O1 R, o: ?Пример 2. Метод без возвращаемого значения
& o8 B% @6 s6 n6 q2 A/ W9 c

  1. ' `9 N2 ?4 _7 }3 N+ i- ]/ g% B
  2. public void sayHello() {
    , I* u$ v5 p: @1 [1 _
  3. System.out.println("Hello, adventurer!");
    9 P9 m7 J8 L9 I7 f1 C
  4. }
    ( g6 U$ i* Q6 B( v
Скопировать код

/ F$ \0 k# J+ M4 |# s: o6 ~3 c: j" m, J3 c) G7 T; Y' I$ z* _
🔎 Разбор:
# z6 i* K5 D8 D) u1 I+ I, i0 D1 f1 R8 T/ e+ D. G
public — доступен везде.
1 m% w7 q, J. @" O3 b# M, _& W6 F2 B5 ?- t) z! X) |% @3 T
void — метод ничего не возвращает.
6 `/ |" ?, A& j5 o2 D  n
7 ^- T( [5 @: t" G4 |sayHello() — имя метода.) t2 O  r( L! r
' f" d" B( ~; l  e9 p! s& _4 b+ y
System.out.println — вывести текст в консоль.1 v! f, n0 a' g$ A  Q/ i( U
( z( ~3 S3 G+ }
Пример 3. Метод с возвращаемым значением
% ~1 H. X# d0 Y& F- F7 q
  1.   n8 L) q# o, d' ]- |  ~4 a7 t. g. ^
  2. public int getHealth() {
    . T+ ~. f' v2 H( g# m1 K# k- N$ W" W
  3. return health;7 S0 e( Q1 M  \
  4. }/ T8 Z- J' s0 G0 K" d" U6 d
Скопировать код

# e( M) W* V* f. O3 N
# p3 _8 s1 x/ N& _🔎 Разбор:
3 U9 K8 c& c  Z1 z& g% @" d/ ?! B6 |
int — метод возвращает число.
1 g: o' x$ w- {3 X$ X+ ^" m6 w0 V1 L0 \& c6 ^! J
return health; — вернуть значение переменной health./ i# g3 h- K/ o4 `* x
# w+ v) \0 [! g* J3 ?
Пример 4. Условие if/else
( h8 y8 f; S# _/ S

  1. % h7 y4 R* Q' R; Z  M1 G: L
  2. if (health <= 0) {) t' M  O+ Y6 Y: F; J
  3. System.out.println("Player is dead");
    ' I( i. j: U1 P6 `
  4. } else {
    / H) o$ {8 |& A# Y" v& \( w+ x
  5. System.out.println("Player is alive");1 B* l0 C* m) X* o/ V. r
  6. }/ \! B$ \; a. p: _) I' h8 I' {. \
Скопировать код
: b' W% O  f: v5 R( p
0 E' Y6 N0 w& \# x
🔎 Разбор:6 a: W9 F# K4 V0 B# z2 N0 z

2 t' E0 P6 a5 @8 \1 K+ b4 [if (health <= 0) — если здоровье меньше или равно 0.- p5 u6 v) l8 Z; V* N7 X" W

9 q. E: l  o# R2 E; c9 Selse — иначе (во всех других случаях).& g9 O& u& L6 w/ K! `. r/ N- Q

8 r: l8 a, |$ t2 E) ~1 `3 _5 G- xПример 5. Цикл for
  ]0 ^, K- }5 q) E. X: s
  1. # {6 ]! ]6 l- F" T. Z
  2. for (int i = 0; i < 5; i++) {
    . x# A" u9 {9 R+ K. c) M' b
  3. System.out.println("Attack " + i);6 C2 i/ L6 P$ B6 A
  4. }
    3 S, u1 d; O' b( x& O! |
Скопировать код

* q: ~' O( F, y% L/ ?
3 Q+ e! q) ~/ x🔎 Разбор:7 h& N; j4 q% {3 o& W: ?( J

4 `$ m1 Y) m! C9 ^0 ]# ?int i = 0 — начинаем счётчик с 0.. [! \7 i/ l3 S

' v% l. z% ~7 ?- F8 }( L& E) Y& n. ai < 5 — повторяем, пока i меньше 5.
; W2 R* R& K- Z8 z$ e. e1 L' v% y0 f- d4 Y3 h3 s1 f
i++ — каждый раз увеличиваем i на 1.5 I9 U' u5 E7 m8 i  h- T* k& c1 L% x

( L* Z0 F! T2 u1 h* j0 ~- QВыведет: Attack 0, Attack 1, …, Attack 4.' Q) S: F2 B/ }5 E' @, p* ?6 m8 V! U7 u
' c" h8 _5 l# b4 c" F5 E, j3 E
Пример 6. try/catch — обработка ошибок
" C) g5 b! C" W- t2 T8 ?

  1. + h. V2 d# S! |8 f/ L
  2. try {
    & x2 p/ Y( X+ p& C' w9 R
  3. int x = 10 / 0;
    4 S4 o6 K$ v$ j% |
  4. } catch (Exception e) {
    4 a4 z) z. s3 n' P- B; }$ u( K
  5. System.out.println("Ошибка: " + e.getMessage());7 D* a9 V) k4 J
  6. }
    & I5 E# Q$ D$ G& Y
Скопировать код
/ P7 U4 w9 A% V* i

0 {6 c  @% ^0 h- `# d0 A3 l🔎 Разбор:) Q+ A& _' ?( h
9 o) {  @9 s, Z2 s
try — пробуем выполнить код.
+ J6 Z+ F1 Y2 `% r: `0 h$ Q6 n4 V' {
10 / 0 — деление на 0 вызовет ошибку.
# b: g, }. [: c2 P
1 Y6 B' z7 C  H' v3 t+ B* X- Ocatch (Exception e) — поймали ошибку.
) D. N9 ^2 d* W  u5 O' W# `' v' o% E! _  d# d! V# G- r
System.out.println("Ошибка: " + e.getMessage()); — выводим сообщение.2 k  q) p! }% s  |+ U  M; ~

* R. B7 j1 }0 _7 a' D( |2 r+ zПример 7. Конструктор2 D$ D5 j0 d9 M3 p

  1. 0 D% |3 e5 v, S- [% X; b
  2. public class Player {* g* C* b% |0 J& T$ ~
  3. private String name;
    8 H& E% ~2 L0 T* T0 s+ r& N

  4. 0 R4 c4 g( q; T& I: `' `! H+ r
  5. public Player(String name) {
    # T. `" J7 M: k
  6.     this.name = name;* h1 D' _+ T( o$ ]- }8 ^) h7 H
  7. }* v8 E, F5 y% F3 [" A3 j& ]5 p! J7 _& S1 w
  8. 1 \6 ?, ~9 `$ K) q% N
  9. : X( N. h1 @( y* F  y  L4 u! S8 U1 H
  10. }* O% ]: W0 }; M1 G
Скопировать код

' M) L! d% Q# b+ |4 u
. T; s0 H9 t  N. w) w. ]! x5 O( }🔎 Разбор:
" f# D- ?0 Y8 a' I" T! N3 q' f- r0 ~: U& q9 Y
public Player(String name) — конструктор (метод, который вызывается при создании объекта).
8 U" \- \4 B! O, R! A* `7 Y, y4 A
2 w2 ?* k" |* E( Fthis.name = name; — присваиваем значение переданное при создании объекта.
( H1 a6 \, {0 H
7 s2 ?( `0 N/ |9 [2 RПример использования:
  a' M: h( R# P* `
  1. 5 H4 C0 J$ V2 u1 ]
  2. Player p = new Player("Elmorion");) q2 j  j- p) S* Y/ a. H! E' b
Скопировать код

- f# |' e$ I& E9 |
) o7 J% E! g% t6 T1 D( b; V🔥 Это база, на которой держится 90% кода в L2J и ASTRA.
 Автор| admin Опубликовано 10 час. назад | Показать все сообщения
📌 Пример из L2J (Config.java) с разбором1 |, k9 S/ ~+ n8 X; y1 n, ]
3 j5 j- P4 m1 j- R2 O8 w" U+ w

  1. % I" T' |+ [4 c% a2 h/ V( t
  2. public static final String CUSTOM_ASTRA_CONFIG_FILE = "./config/Custom/Astra.ini";
    & N, L0 N, d* D9 g6 X) Q
Скопировать код

% R& m+ p& Y; i+ w' g( N. k6 |# W+ T- J# K
🔎 Разбор:
9 H% |' |) D, \: s! A, X6 I. ?! j- q' u7 e1 C' w5 i
public — переменная доступна везде.
9 K, A& }) _3 n  X3 D2 _  ]. @
- \! n! z; X- j! y  ~- K) pstatic — принадлежит классу, а не объекту.
! d, d. @) N( Q+ Z
" T. ]5 m; W, |5 zfinal — значение изменить нельзя (константа)./ M: k+ V9 Y7 s

# |5 A6 e) p6 T6 e- R' w7 v0 KString — тип данных «строка».
+ M9 @2 w1 F0 B) `, |' c2 d( Y& m2 \) D' a
CUSTOM_ASTRA_CONFIG_FILE — имя переменной (принято писать константы ЗАГЛАВНЫМИ буквами).
7 E9 Q3 X% k% h( M7 ^
) F- ^+ \5 g& X' s# b$ D"./config/Custom/Astra.ini" — путь к файлу (строка в кавычках).
2 ^6 h0 r* {8 R5 s2 v2 b# r8 ~: f, v6 w3 U

  1. & k' Z/ z) V7 _0 e
  2. public static void load()# P9 C6 g& m5 G3 X3 y
  3. {+ J/ _* R7 o2 U$ x1 I8 o" H5 j
  4. File ini = new File(CUSTOM_ASTRA_CONFIG_FILE);# G! L% U( S9 u. ]$ H3 F
  5. if (!ini.exists()), {) H$ O4 T$ p) i$ X/ }- Z
  6. {
    ' u! W, }/ `( U8 I. Y
  7. System.out.println("[ASTRA] Astra.ini not found at: " + ini.getPath());; B- p5 D6 Q9 |* {* s
  8. return;
    & p5 Z" ?8 T+ Y, [0 O1 [- `
  9. }
    - |0 N$ O+ x. `7 a4 n
  10. 9 v1 M9 e6 p! j1 P" X0 k  ~  D
  11. parseIni(ini);
    ; C5 Q) i0 J& D5 h
  12. " W  U0 I+ v) j$ d$ l9 L

  13. 1 ~( X$ o. w' C6 N0 i0 P
  14. }
    7 i8 J) f' u# O2 Z# G8 P
Скопировать код

; a. S6 t* d# R8 O2 w; V, U; }* e) ?( n  s) I" Z
🔎 Разбор:/ W5 ^6 o# d2 _, ~# {1 a
" g1 v0 P4 ?7 K. s* W
public static void load() — метод доступен везде, общий для класса, ничего не возвращает., F4 J$ _& t/ Y! v9 ?& l9 f8 v
& X0 r1 d9 o1 u, E6 G
File ini = new File(...) — создаём объект File, указываем путь до файла.3 K6 C5 @1 t9 P0 T0 T

% u0 u( N' V  L7 b! [, I5 Eif (!ini.exists()) — проверка: если файл не существует.
* Y# c& A. T) N& A$ U! r+ J  v4 b- D
System.out.println(...) — выводим сообщение в консоль.
  R% ^6 P4 _3 _; `+ ^5 q8 T6 K' g% {+ |! G  R9 Q- q; y5 p
return; — завершаем метод.0 B+ W2 j# ]' c. w

; V' ^' Z- `, V5 M, s* ~9 cparseIni(ini); — вызываем метод, который разберёт содержимое ini-файла.& S6 ^* }" X/ J- D0 Q

6 I7 \: W. i4 ?💡 Что это значит для сервера?
# S! t7 ?/ `4 [* w# @- i8 i4 c; |" }1 p2 m& A8 J
Этот код отвечает за то, чтобы сервер при старте загрузил твой файл настроек Astra.ini.
! |; w: c* I2 `  iЕсли файла нет — он пишет в консоль сообщение и использует стандартные значения (дефолты).
& s8 h1 G, A  n/ w
: o2 u' u  ]8 t2 `/ b3 [🔥 Такой же принцип работает для всех ini-файлов в L2J (Rates.ini, Server.ini, NPC.ini). Отличие только в названии переменной и в пути к файлу.
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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