Какие принципы ООП есть ?

Спросят с вероятностью 14%



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



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

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

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:

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 (переопределение методов):

class Bird:

def fly(self):

print("Летит как птица")



class Eagle(Bird):

def fly(self):

print("Летит как орел")



class Penguin(Bird):

def fly(self):

print("Не умеет летать")




4️⃣Абстракция

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

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)


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



👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 207 вопроса на Data Scientist. Ставь 👍 если нравится контент



🔐 База собесов | 🔐 База тестовых