Найти в Дзене
Николай Лазарев

Основы ООП. Мои примеры наследования, полиморфизма, инкапсуляции.

Jan 12, 2022

Повторил тему объектно-ориентированного программирования (ООП), в частности следующие блоки и понятия:

  1. Парадигма АТД. Абстрактные типы данных. Понятие классаКласс - объединение данных и функций их обработки.
    Класс — чертёж, на основе которого создаётся некоторый объект.
    Важно! Моделировать класс нужно не с помощью атрибутов, а с помощью операций над этой структурой данных.
  2. Понятие экземпляра класса(объекта класса)Служебное слово self, в соответствии с соглашением в Python, определяет ссылку на объект (экземпляр) класса.
    Переменная self связывается с объектом класса, к которому применяются методы класса.
    Через переменную self можно получить доступ к атрибутам объекта.
    Когда методы класса применяются к новому объекту класса, то self связывается с новым объектом.
    Через эту переменную осуществляется доступ к атрибутам нового объекта.
  3. Понятие атрибута.
  4. Методы - операции над классом. При моделировании класса методы первичны, атрибуты вторичны.
  5. Понятие конструктора - специальный метод, вызываемый при создании экземпляра класса, используется для инициализации значений атрибутов
  6. Модификаторы доступа (для переменных).Публичный (auto_name),
    Защищенный (_auto_year)
    Приватный (__auto_model)
  7. Инкапсуляция - механизм сокрытия данных.Одиночное подчёркивание в начале имени атрибута или метода свидетельствует о том, что атрибут или методы не предназначены для использования вне класса. Они доступны по этому имени.
    Использование двойного подчёркивания перед именем атрибута и метода делает их недоступными по этому имени.
  8. Наследование. Класс Auto наследует характеристики класса Transport, то есть все его атрибуты и методы
    Множественное наследование: несколько дочерних классов у одного родителя, несколько родителей у одного класса
  9. Полиморфизм - способность объекта иметь различную функциональность. Перегрузка методов - возможности метода отражать разную логику выполнения в зависимости от количества и типа передаваемых параметров. Переопределение методов - наличии метода с одинаковым названием для родительского и дочернего классов

Ссылка на базовые задачи по ООП

Ещё ссылки на мой задачи по ООП

По результату прохождения курса Python основы, был реализован проект - Игра Лото. В проекте я применил полученные знания по ООП. Применена концепция наследования.

Дочерний класс наследует параметры родительских классов
Дочерний класс наследует параметры родительских классов

Ссылка на пример использования концепции полиморфизма (в виде переопределения методов) в функции show_speed.

Концепция полиморфизма - переопределение методов
Концепция полиморфизма - переопределение методов

Ссылка на пример использования инкапсуляции для переменной colors.

Пример инкапсуляции - условно приватная переменная
Пример инкапсуляции - условно приватная переменная

Дополнительные материалы:

Объектно-ориентированное Программирование в Python.

Объектно-ориентированное программирование. Классы и объекты.

Обучение ООП.

Python — объектно-ориентированное программирование (ООП).