Основные понятия объектно-ориентированного программирования
Объектно-ориентированное программирование (ООП) — это методология программирования, основанная на концепции объектов и классов. Объекты представляют собой экземпляры класса, а классы описывают общие характеристики и поведение группы объектов.
Классы и объекты
— это шаблон или проект объекта. Он определяет структуру и поведение объектов данного типа.
``python class Car: def __init__(self, brand, model): self.brand = brand self.model = model ``
создается на основе класса и представляет конкретный экземпляр этого класса.
``python my_car = Car("Toyota", "Camry") ``
Атрибуты и методы
Атрибуты — это переменные, хранящиеся внутри объекта. Методы — это функции, определенные внутри класса и выполняющие действия над объектом.
```python class Person: def __init__(self, name, age): self.name = name self.age = age
def greet(self): print(f"Hello, my name is {self.name}") ```
Наследование
Наследование позволяет создавать новые классы на основе существующих, наследуя их атрибуты и методы.
``python class Employee(Person): def __init__(self, name, age, salary): super().__init__(name, age) self.salary = salary ``
Полиморфизм
Полиморфизм позволяет объектам разных классов реагировать на одни и те же сообщения различным образом.
``python def display_info(obj): obj.greet() ``
Инкапсуляция
Инкапсуляция скрывает внутреннюю реализацию объекта от внешнего мира, предоставляя доступ только через специально определенные интерфейсы.
```python class BankAccount: def __init__(self, balance): self.__balance = balance
def deposit(self, amount): self.__balance += amount ```
Пропуски для самопроверки
Что такое класс в Python?
Шаблон или проект объекта
Функция
Метод
Как создать объект на основе класса?
class_name = ClassName()
object_name = new ClassName()
object_name = ClassName()
Какие элементы могут быть у метода?
Только локальные переменные
Локальные и глобальные переменные
Сам объект и параметры
Какой оператор используется при наследовании?
extends
inherit
:
Что означает полиморфизм в контексте ООП?
Возможность выполнения одного и того же действия разными способами
Возможность выполнения нескольких действий одним способом
Возможность изменения поведения объекта в зависимости от контекста
Для защиты внутренней структуры объекта
Для упрощения кода
Для улучшения читаемости кода