Какие есть принципы ООП
Объектно-ориентированное программирование (ООП) — это парадигма программирования, основанная на четырех ключевых принципах: инкапсуляции, наследовании, полиморфизме и абстракции. Эти принципы обеспечивают гибкость, масштабируемость и повторное использование кода, делая его более чистым, понятным и надежным.
Инкапсуляция
Инкапсуляция — это сокрытие внутренних данных класса от внешнего мира и контроль доступа к ним через методы класса. Это защищает данные от непреднамеренного изменения и предоставляет четкий интерфейс взаимодействия с объектом. В Java инкапсуляция реализуется с помощью модификаторов доступа (private, protected, public) и методов-геттеров/сеттеров.
public class Account {
private double balance; // Скрытие данных
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
public double getBalance() {
return balance;
}
}Наследование
Наследование позволяет создать новый класс на основе существующего, перенимая его свойства и методы. Это облегчает повторное использование кода и упрощает создание иерархических классификаций. В Java наследование реализуется с помощью ключевого слова extends.
public class Vehicle {
private String brand;
public void honk() {
System.out.println("Туут, туут!");
}
}
public class Car extends Vehicle {
private int numberOfSeats;
public void display() {
System.out.println("Марка: " + brand + ", Количество сидений: " + numberOfSeats);
}
}Полиморфизм
Полиморфизм позволяет объектам с одинаковым интерфейсом иметь различную реализацию. Это означает, что одно и то же имя метода может использоваться для разных типов действий. В Java полиморфизм достигается через переопределение методов (@Override) и перегрузку методов.
public class Animal {
public void sound() {
System.out.println("Животное издает звук");
}
}
public class Pig extends Animal {
@Override
public void sound() {
System.out.println("Хрю");
}
}
public class Dog extends Animal {
@Override
public void sound() {
System.out.println("Гав");
}
}Абстракция
Абстракция означает выделение ключевых, наиболее значимых характеристик объекта, исключая из рассмотрения несущественные. Это позволяет сосредоточиться на том, что объект делает, а не на том, как он это делает. В Java абстракция реализуется через абстрактные классы и интерфейсы.
public abstract class Shape {
abstract void draw();
}
public class Circle extends Shape {
@Override
void draw() {
System.out.println("Рисуем круг");
}
}
public class Square extends Shape {
@Override
void draw() {
System.out.println("Рисуем квадрат");
}
}Коротко
- Четыре принципа ООП: инкапсуляция, наследование, полиморфизм, абстракция.
- Инкапсуляция скрывает данные и контролирует доступ через методы.
- Наследование позволяет создавать иерархии классов и переиспользовать код.
- Полиморфизм позволяет единообразно работать с объектами разных типов.
- Абстракция выделяет существенные характеристики, скрывая детали реализации.
