Java для серверостроителей (L2J) или Учебник Java простыми словами
Java для серверостроителей (L2J) или Учебник Java простыми словамиПодразделы/темы:
[*]🔑 Ключевые слова Java (с переводом и объяснением)
[*]📦 Структура проекта L2J (пакеты, классы, файлы)
[*]⚙️ Работа с конфигами (Config.java, ini-файлы)
[*]🧩 Объекты и методы на примерах из L2J
[*]🔄 Циклы и условия в квестах
[*]🛠 Исключения (try/catch) и обработка ошибок
[*]✍️ Примеры кода с переводом (AstraConfig, AbstractAI и т.д.)
📌 Ключевые слова Java (с переводом и объяснением)
Ключевое словоПереводОбъяснение
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перечислениеНабор фиксированных констант.
📌 Примеры кода Java с переводом на русский
Пример 1. Объявление класса и переменной
public class Player {
private int health = 100;
}
🔎 Разбор:
public class Player — создаём класс с именем Player, доступный везде.
private int health = 100; — внутри класса есть переменная (поле) health типа число (int), приватная, начальное значение = 100.
Пример 2. Метод без возвращаемого значения
public void sayHello() {
System.out.println("Hello, adventurer!");
}
🔎 Разбор:
public — доступен везде.
void — метод ничего не возвращает.
sayHello() — имя метода.
System.out.println — вывести текст в консоль.
Пример 3. Метод с возвращаемым значением
public int getHealth() {
return health;
}
🔎 Разбор:
int — метод возвращает число.
return health; — вернуть значение переменной health.
Пример 4. Условие if/else
if (health <= 0) {
System.out.println("Player is dead");
} else {
System.out.println("Player is alive");
}
🔎 Разбор:
if (health <= 0) — если здоровье меньше или равно 0.
else — иначе (во всех других случаях).
Пример 5. Цикл for
for (int i = 0; i < 5; i++) {
System.out.println("Attack " + i);
}
🔎 Разбор:
int i = 0 — начинаем счётчик с 0.
i < 5 — повторяем, пока i меньше 5.
i++ — каждый раз увеличиваем i на 1.
Выведет: Attack 0, Attack 1, …, Attack 4.
Пример 6. try/catch — обработка ошибок
try {
int x = 10 / 0;
} catch (Exception e) {
System.out.println("Ошибка: " + e.getMessage());
}
🔎 Разбор:
try — пробуем выполнить код.
10 / 0 — деление на 0 вызовет ошибку.
catch (Exception e) — поймали ошибку.
System.out.println("Ошибка: " + e.getMessage()); — выводим сообщение.
Пример 7. Конструктор
public class Player {
private String name;
public Player(String name) {
this.name = name;
}
}
🔎 Разбор:
public Player(String name) — конструктор (метод, который вызывается при создании объекта).
this.name = name; — присваиваем значение переданное при создании объекта.
Пример использования:
Player p = new Player("Elmorion");
🔥 Это база, на которой держится 90% кода в L2J и ASTRA. 📌 Пример из L2J (Config.java) с разбором
public static final String CUSTOM_ASTRA_CONFIG_FILE = "./config/Custom/Astra.ini";
🔎 Разбор:
public — переменная доступна везде.
static — принадлежит классу, а не объекту.
final — значение изменить нельзя (константа).
String — тип данных «строка».
CUSTOM_ASTRA_CONFIG_FILE — имя переменной (принято писать константы ЗАГЛАВНЫМИ буквами).
"./config/Custom/Astra.ini" — путь к файлу (строка в кавычках).
public static void load()
{
File ini = new File(CUSTOM_ASTRA_CONFIG_FILE);
if (!ini.exists())
{
System.out.println(" Astra.ini not found at: " + ini.getPath());
return;
}
parseIni(ini);
}
🔎 Разбор:
public static void load() — метод доступен везде, общий для класса, ничего не возвращает.
File ini = new File(...) — создаём объект File, указываем путь до файла.
if (!ini.exists()) — проверка: если файл не существует.
System.out.println(...) — выводим сообщение в консоль.
return; — завершаем метод.
parseIni(ini); — вызываем метод, который разберёт содержимое ini-файла.
💡 Что это значит для сервера?
Этот код отвечает за то, чтобы сервер при старте загрузил твой файл настроек Astra.ini.
Если файла нет — он пишет в консоль сообщение и использует стандартные значения (дефолты).
🔥 Такой же принцип работает для всех ini-файлов в L2J (Rates.ini, Server.ini, NPC.ini). Отличие только в названии переменной и в пути к файлу.
Страниц:
[1]