Описание реальных объектов с помощью ООП
Объектно-ориентированное программирование (ООП) позволяет описывать реальные объекты. В качестве примера рассмотрим транспортное средство. Мы создадим класс, описывающий общие характеристики транспорта, и несколько объектов, представляющих конкретные транспортные средства (например, BMW или грузовик).
Создание класса в Java
Классы в Java обычно создаются в отдельных файлах. Создайте новый файл Java-класса. Назовите его Транспорт (CamelCase: первая буква заглавная, остальные строчные). IDE автоматически создаст файл Транспорт.java. Если пакеты файлов совпадают, можно обращаться к классам из разных файлов.
Структура класса и модификаторы доступа
Для создания класса используется ключевое слово class и имя класса. Внутри класса описываются характеристики (поля – переменные класса) и методы. Рассмотрим модификаторы доступа:
- public: Обеспечивает доступ к полю, методу или классу из любого места.
- protected: Доступ внутри класса, а также в классах-наследниках (рассмотрим позже).
- private: Доступ только внутри класса.
В нашем примере будем использовать public.
Поля класса
Создадим четыре поля для класса Транспорт:
- float speed; – скорость
- int weight; – вес
- String color; – цвет
- byte[] coordinates; – координаты (массив байтов)
Создание и использование объектов
Для создания объекта указывается тип данных (имя класса) и имя объекта, затем используется оператор new с именем класса и пустыми круглыми скобками:
Транспорт bmw = new Транспорт();
После создания объекта можно обращаться к его полям через точку:
bmw.speed = 250;
bmw.weight = 2500;
bmw.color = "white";
bmw.coordinates = new byte[]{0, 0, 0};
Можно создавать множество объектов на основе одного класса, каждый со своими значениями полей.
Методы класса
Добавим методы для установки и получения информации о транспортном средстве:
public void setValues(float speed_, int weight_, String color_, byte[] coordinates_) {
speed = speed_;
weight = weight_;
color = color_;
coordinates = coordinates_;
}
public String getDetails() {
String info = "Скорость: " + speed + "\nВес: " + weight + "\nЦвет: " + color + "\nКоординаты: ";
String infoCoords = "";
for (int i = 0; i < coordinates.length; i++) {
infoCoords += coordinates[i] + "\n";
}
return info + infoCoords;
}
Различие между public и private (на примере)
Если поле объявлено как private, доступ к нему извне класса невозможен. Измените модификатор доступа поля speed на private и убедитесь, что возникнут ошибки при попытке доступа к нему извне класса.
Пример использования
Создадим объект Грузовик:
Транспорт truck = new Транспорт();
truck.setValues(140.5f, 5600, "red", new byte[]{100, 0, 100});
Выведем информацию о созданных объектах:
bmw.setValues(250, 2500, "white", new byte[]{0, 0, 0});
System.out.println(bmw.getDetails());
System.out.println(truck.getDetails());
В этом уроке мы научились создавать классы и объекты в Java, используя модификаторы доступа и методы. ООП позволяет структурировать код, повторно использовать функционал и создавать сложные приложения.