Классы и объекты в Java: практическое руководство
Классы и объекты в Java
Узнайте, как объектная модель Java превращает реальные концепции в переиспользуемый код.
Java фундаментально объектно-ориентирована. Она разбивает сложные проблемы на управляемые, самодостаточные сущности — объекты — каждый из которых имеет состояние и поведение.
Объект может быть чем угодно, что хранит данные (состояние) и предлагает действия (поведение). Например, велосипед имеет:
- Состояния: бездействие, первая передача и т.д.
- Поведения: торможение, ускорение и т.д.
Прежде чем погрузиться в объекты, изучим чертеж, определяющий их: класс.
Класс в Java
Класс — это шаблон, из которого создаются объекты. Представьте его как план дома, указывающий этажи, двери и окна. Из одного плана можно построить много домов, так же как из одного класса — много объектов.
Создание класса в Java
Определите класс с ключевым словом class:
class ClassName {
// поля
// методы
}
Поля (переменные) хранят состояние объекта, а методы инкапсулируют его поведение.
- Поля хранят данные.
- Методы выполняют операции.
Пример: класс Bicycle.
class Bicycle {
// состояние
private int gear = 5;
// поведение
public void braking() {
System.out.println("Working of Braking");
}
}
Здесь Bicycle — прототип. Можно создать множество экземпляров велосипеда, каждый со своей структурой, но независимыми данными.
Примечание: private и public — модификаторы доступа, управляющие видимостью. Подробнее: Модификаторы доступа в Java.
Объекты в Java
Объект — это экземпляр класса. Например, Bicycle — класс, а MountainBicycle, SportsBicycle, TouringBicycle — отдельные объекты, созданные из этого класса.
Создание объекта в Java
Создайте объект с ключевым словом new и конструктором класса:
className object = new className(); // Для Bicycle
Bicycle sportsBicycle = new Bicycle();
Bicycle touringBicycle = new Bicycle();
Конструкторы — специальные методы с именем класса. Подробнее: Конструкторы в Java.
Имена вроде sportsBicycle и touringBicycle служат ссылками на соответствующие экземпляры.
Несколько экземпляров одного класса могут сосуществовать без взаимного влияния.
Примечание: Поля и методы класса коллективно называются членами (members).
Доступ к членам класса
Используйте оператор точку с ссылкой на объект для доступа к его членам:
class Bicycle {
int gear = 5;
void braking() { ... }
}
Bicycle sportsBicycle = new Bicycle();
sportsBicycle.gear;
sportsBicycle.braking();
Здесь sportsBicycle обращается к полю gear и вызывает метод braking().
- sportsBicycle.gear — читает значение gear.
- sportsBicycle.braking() — вызывает рутину торможения.
В следующей главе мы подробно рассмотрим методы Java.
Ниже полный пример, объединяющий эти концепции.
Пример: Класс и объекты в Java
class Lamp {
// отслеживает, горит ли лампа
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
void turnOff() {
isOn = false;
System.out.println("Light on? " + isOn);
}
}
class Main {
public static void main(String[] args) {
Lamp led = new Lamp();
Lamp halogen = new Lamp();
led.turnOn();
halogen.turnOff();
}
}
Вывод:
Light on? true Light on? false
В программе класс Lamp определяет переменную экземпляра isOn и два метода, манипулирующие ею. Класс Main создает два объекта лампы — led и halogen — и вызывает их методы независимо.
Каждый объект хранит свою копию isOn, гарантируя, что операции над одной лампой не влияют на другую.
Пример: Создание объектов внутри того же класса
Объекты также могут создаваться внутри класса, их определяющего. Вот как:
class Lamp {
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
public static void main(String[] args) {
Lamp led = new Lamp();
led.turnOn();
}
}
Вывод
Light on? true
Этот паттерн полезен для небольших демонстраций или утилитарных классов, где основная логика находится в том же классе.
java
- Классы и объекты в C++: практическое руководство по объектно-ориентированному программированию
- Переменные и литералы в Java: подробное руководство
- Ключевое слово final в Java: переменные, методы и классы
- Оператор instanceof в Java: полное руководство с примерами
- Абстрактные классы и методы в Java: полное руководство
- Вложенные и внутренние классы в Java: типы, примеры и лучшие практики
- Статические вложенные классы в Java: использование, отличия и примеры
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Паттерн Singleton в Java: как реализовать и безопасно использовать
- Рефлексия в Java: инспекция классов, методов и полей во время выполнения