Ответ
В теле класса Java можно определить следующие элементы:
1. Поля (Fields) — переменные, хранящие состояние объекта.
private String name; // поле экземпляра
private static int count; // статическое поле класса
2. Методы (Methods) — определяют поведение объекта или класса.
public void doSomething() {}
public static void utilityMethod() {}
3. Конструкторы (Constructors) — специальные методы для инициализации новых объектов.
public MyClass(String param) { ... }
4. Вложенные классы (Nested Classes)
- Статические вложенные классы (
static class) — не имеют доступа к нестатическим членам внешнего класса. - Внутренние классы (inner classes) — имеют доступ к полям и методам внешнего объекта.
- Локальные классы (local classes) — определены внутри метода.
- Анонимные классы (anonymous classes) — классы без имени, часто для реализации интерфейсов.
5. Блоки инициализации (Initializer Blocks)
{ /* блок инициализации экземпляра */ }
static { /* статический блок инициализации */ }
6. Другие типы
- Интерфейсы (Interfaces) — начиная с Java 8, можно объявлять вложенные интерфейсы.
- Перечисления (Enums)
Полный пример:
class Outer {
// Поле
private int value;
// Конструктор
public Outer(int v) { this.value = v; }
// Метод
public int getValue() { return value; }
// Вложенный статический класс
static class Nested {}
// Внутренний класс
class Inner { void print() { System.out.println(value); } }
// Вложенный enum
enum Status { ACTIVE, INACTIVE }
// Статический блок
static { System.out.println("Class loaded"); }
}