Назовите основные принципы ООП.android-1

ООП — это парадигма программирования, основанная на концепции объектов, которые содержат данные и методы. Вот 4 ключевых принципа ООП с подробным объяснением:

1. Инкапсуляция

Суть: Сокрытие внутренней реализации объекта и предоставление контролируемого доступа к данным через публичные методы.

Пример на Java:

public class BankAccount {
    private double balance; // Приватное поле

    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    public double getBalance() {
        return balance;
    }
}

Важно:

  • Поля делаем private
  • Доступ через public методы (геттеры/сеттеры)
  • Можно добавлять валидацию в методы

2. Наследование

Суть: Возможность создания новых классов на основе существующих с наследованием их свойств и методов.

Пример:

class Animal {
    void eat() {
        System.out.println("Eating...");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("Barking...");
    }
}

Особенности:

  • Ключевое слово extends
  • Поддерживает иерархию классов
  • В Java — только одиночное наследование

3. Полиморфизм

Суть: Возможность объектов с одинаковой спецификацией иметь различную реализацию.

Два типа:

  1. Переопределение методов (Runtime polymorphism)
class Shape {
    void draw() {
        System.out.println("Drawing shape");
    }
}

class Circle extends Shape {
    @Override
    void draw() {
        System.out.println("Drawing circle");
    }
}
  1. Перегрузка методов (Compile-time polymorphism)
class MathOperations {
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
}

4. Абстракция

Суть: Сокрытие сложной реализации и предоставление только существенных характеристик объекта.

Реализуется через:

  • Абстрактные классы
  • Интерфейсы

Пример абстрактного класса:

abstract class Vehicle {
    abstract void move();

    void startEngine() {
        System.out.println("Engine started");
    }
}

Пример интерфейса:

interface Drawable {
    void draw();
    void resize();
}

Дополнительные важные концепции

Хотя формально не входят в 4 основных принципа, но важны в ООП:

  • Ассоциация (связь между объектами)
  • Композиция (объект-часть не может существовать без объекта-целого)
  • Агрегация (объект-часть может существовать отдельно)

Резюмируем

  1. Инкапсуляция — контроль доступа к данным
  2. Наследование — повторное использование кода
  3. Полиморфизм — одна интерфейс, много реализаций
  4. Абстракция — работа с концепциями, а не реализацией

Эти принципы помогают создавать гибкие, поддерживаемые и масштабируемые приложения.