Урок 7: Введение в ООП
В этом уроке мы рассмотрим основы объектно-ориентированного программирования (ООП) в Java, включая понятия классов и объектов.
Основные концепции ООП
ООП основано на четырех основных принципах:
- Абстракция: выделение основных характеристик объекта и игнорирование несущественных деталей.
- Инкапсуляция: сокрытие внутренней реализации объекта и предоставление доступа только через публичные методы.
- Наследование: создание новых классов на основе существующих с добавлением новых или изменением существующих свойств и методов.
- Полиморфизм: способность объектов различных классов обрабатывать данные через единый интерфейс.
Классы и объекты
Класс — это шаблон, описывающий свойства и поведение объектов. Объект — это экземпляр класса. Рассмотрим пример класса и объекта:
class Person {
String name;
int age;
void sayHello() {
System.out.println("Привет, меня зовут " + name);
}
}
public class OOPExample {
public static void main(String[] args) {
Person person1 = new Person();
person1.name = "Алексей";
person1.age = 30;
person1.sayHello();
}
}
Результат выполнения
Привет, меня зовут Алексей
Упражнения
Упражнение 1: Создание класса автомобиля
Создайте класс Car
с полями make
, model
и year
. Добавьте метод displayInfo
, который выводит информацию об автомобиле. Создайте объект этого класса и вызовите метод displayInfo
.
Решение:
class Car {
String make;
String model;
int year;
void displayInfo() {
System.out.println("Марка: " + make);
System.out.println("Модель: " + model);
System.out.println("Год: " + year);
}
}
public class CarTest {
public static void main(String[] args) {
Car car1 = new Car();
car1.make = "Toyota";
car1.model = "Camry";
car1.year = 2020;
car1.displayInfo();
}
}
Объяснение: Мы создали класс Car
с полями make
, model
и year
. Метод displayInfo
выводит информацию об автомобиле. Затем мы создали объект car1
и присвоили значения полям, после чего вызвали метод displayInfo
.
Упражнение 2: Добавление методов в класс
Добавьте в класс Person
метод haveBirthday
, который увеличивает возраст на 1 и выводит сообщение "С днем рождения, {name}!". Создайте объект класса и вызовите метод haveBirthday
.
Решение:
class Person {
String name;
int age;
void sayHello() {
System.out.println("Привет, меня зовут " + name);
}
void haveBirthday() {
age++;
System.out.println("С днем рождения, " + name + "!");
}
}
public class PersonTest {
public static void main(String[] args) {
Person person1 = new Person();
person1.name = "Алексей";
person1.age = 30;
person1.sayHello();
person1.haveBirthday();
System.out.println("Новый возраст: " + person1.age);
}
}
Объяснение: Мы добавили в класс Person
метод haveBirthday
, который увеличивает возраст на 1 и выводит сообщение. Затем создали объект person1
, вызвали метод sayHello
и haveBirthday
, после чего вывели новый возраст.