Ответ
В Java классы являются основными строительными блоками системы типов. Они определяют новые типы данных, которые используются для:
- Статической проверки типов: Компилятор проверяет корректность операций (вызов методов, присваивание) на основе типов, определенных классами.
- Создания объектов: Класс выступает в роли шаблона ("чертежа") для создания экземпляров (объектов).
- Инкапсуляции состояния и поведения:
- Поля (fields) определяют состояние объекта (данные).
- Методы (methods) определяют его поведение (операции).
Пример, демонстрирующий роль класса как типа:
// 1. ОПРЕДЕЛЕНИЕ ТИПА: Класс `Person` определяет новый тип данных.
class Person {
// Состояние (поля)
private String name;
private int age;
// Поведение (методы)
public void greet() {
System.out.println("Hello, my name is " + name);
}
public boolean isAdult() {
return age >= 18; // Логика, основанная на состоянии
}
}
// 2. ИСПОЛЬЗОВАНИЕ ТИПА:
public class Main {
public static void main(String[] args) {
// Создание объекта типа `Person`. Тип переменной `person1` - `Person`.
Person person1 = new Person();
person1.name = "Alice";
// Компилятор знает, что у типа `Person` есть метод `greet()`.
person1.greet(); // Вывод: Hello, my name is Alice
// Система типов предотвращает ошибки:
// String str = person1; // ОШИБКА КОМПИЛЯЦИИ: несовместимые типы.
}
}
Классы также являются основой для ключевых принципов ООП: наследование (расширение одного типа другим), полиморфизм и абстракция.