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

23 декабря 2019



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

Объект — это что-либо, у чего есть какие-либо характеристики и то, что может выполнить какую-либо функцию.

Для описания моделей используются классы. Их название принято писать с заглавной буквы, а наименование методов со строчной. Класс создается через ключевой слово class, c последующим указанием имени, и завершается двоеточием после которого указываются атрибуты и методы.

Метод - это функция принадлежащая классу или объекту.
Напишем свой первый класс на python:

class MyClass: # Создаем класс с именем myClass
    i = 0    # Атрибуты класса
    a = "Class text"

    # Метод класса указание первым аргументом self обязательно!
    def mymethod(self):
        print("mymethod: ",self.a )

    def method2(self):
        self.mymethod()

Ключевое слово self указывает на принадлежность методов к классу. Через него производится обращение к элементам класса внутри класса. Например, в методе mymethod мы обращается к атрибуту self.a . В методе method2 мы аналогично вызываем метод self.mymethod().

Стоит понимать, что класс сам по себе ничего не делает и не хранит данных, он является описанием объекта. Создадим класс Dog (собака). Собака имеет атрибут color и метод walk. В нашем случае класс описывает абстрактную собаку:

class Dog:
    color = "" # Цвет

    def walk(self):
        print(self.color, "собака гуляет.")

black_dog = Dog()
black_dog.color = "Черная"
black_dog.walk() # Черная собака гуляет

dog2 = Dog()
dog2.color = "Белая"
dog2.walk() # Белая собака гуляет

Далее мы создаем объект, который описывается нашим классом black_dog = Dog(). После этого мы указываем, что собака черная black_dog.color = "Черная". Вызываем метод walk, который отправляет черную собаку гулять. Аналогично делаем для объекта dog2, но изменим цвет собаки на белый.

Объектно-ориентированное программирование (ООП) строится на основных парадигмах инкапсуляции, наследования и полиморфизма.

Инкапсуляция - позволяет объединить данные и методы, работающие с ними, в классе.

Наследование - позволяет описать новый класс на основе уже существующего

Полиморфизм - позволяет использовать объекты с одинаковыми методами без информации о типе и внутренней структуре.

Более подробно в следующих статьях.