Какие принципы ООП тебе известны

Объектно-ориентированное программирование (ООП) — это парадигма, основанная на концепции объектов, которые могут содержать данные в виде полей (часто называемых атрибутами или свойствами) и код в виде процедур (часто называемых методами). Основные принципы ООП включают:1. Инкапсуляция
Это ограничение доступа к некоторым компонентам объекта и скрытие внутренней реализации от внешнего мира. Это позволяет защитить данные объекта от неправильного использования и является мощным инструментом для управления сложностью программ.

```python
class Account:
    def __init__(self, owner, amount=0):
        self.owner = owner
        self.__balance = amount  # Приватная переменная

    def deposit(self, amount):
        if amount > 0:
            self.__balance += amount
            print(f"Добавлено {amount} на баланс")
        else:
            print("Депозит должен быть положительным числом")

    def show_balance(self):
        print(f"Баланс: {self.__balance}")
```

2. Наследование
Позволяет новому классу перенимать свойства и методы уже существующего класса. Это обеспечивает повторное использование кода и установление иерархических отношений между классами.Пример на Python:

```python
class Vehicle:
    def __init__(self, brand, model):
        self.brand = brand
        self.model = model

    def start_engine(self):
        print("Двигатель запущен")

class Car(Vehicle):  # Класс Car наследует от класса Vehicle
    def open_trunk(self):
        print("Багажник открыт")
```

3. Полиморфизм
Это возможность использовать объекты с одинаковым интерфейсом без информации о конкретных типах и внутренней структуре объектов. В ООП это чаще всего достигается с помощью переопределения методов (method overriding) и перегрузки методов (method overloading).Пример на Python (переопределение методов):

```python
class Bird:
    def fly(self):
        print("Летит как птица")

class Eagle(Bird):
    def fly(self):
        print("Летит как орел")

class Penguin(Bird):
    def fly(self):
        print("Не умеет летать")
```

4. Абстракция
Подразумевает выделение ключевых, существенных характеристик объекта, исключая из рассмотрения незначительные. Это упрощает программирование и управление сложностью.

```python
from abc import ABC, abstractmethod

class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

    @abstractmethod
    def perimeter(self):
        pass

class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

    def perimeter(self):
        return 2 * (self.width + self.height)
```

Основные принципы ООП включают инкапсуляцию (защита данных внутри класса), наследование (расширение функциональности существующих классов), полиморфизм (один интерфейс для разных типов действий) и абстракцию (сосредоточение на важных характеристиках объектов). Эти принципы помогают делать программы более модульными, понятными и легкими для управления.

May 22, 2024, easyoffer