❗Про ООП и 3 кита в мире объектов и классов🐳.
Объектно-ориентированное программирование (далее ООП) считается одним из самых современных и совершенных подходов в этой области. Существовавшие до него процедурный и функциональный методы предполагали написание кода в одном файле. С развитием технологий программы становились все длиннее и длиннее, и разработчикам становилось сложнее поддерживать и изменять их. ООП решает эту проблему, разделяя кусок кода на отдельные сущности, называемые классами и объектами.
Классы и объекты — в чем отличие?
ООП внес в программирование никогда не существовавшие определения: класс и объект. Класс можно назвать типом данных, или — проще говоря — куском кода, имеющим характеристики, называемые полями класса и возможные действия — методы класса. Объект — это сущность, имеющая определенные свойства, принадлежит некоторому классу.
Три главных принципа ООП:
Существуют три главных понятия, называемых также «тремя китами ООП», без которых сама его концепция невозможна - инкапсуляция, наследование и полиморфизм. Без понимания работы этих основных принципов продвигаться дальше в изучении ООП сложно. Давайте коротко рассмотрим каждое из них.
👉 Инкапсуляция — принцип, позволяющий скрыть от пользователя реализацию некоторых методов и значения полей. В языке программирования C# для этого используются так называемые модификаторы доступа (public, private и т.д.).
👉 Наследование — принцип, позволяющий создать один класс на основе другого. Первый класс называется наследником, а второй – родителем. В классе-наследнике реализуются все методы и поля класса-родителя.
👉 Полиморфизм — принцип, позволяющий объектам с идентичным интерфейсом иметь различную реализацию. Полиморфизм добавляет несколько новых понятий: абстрактный/виртуальный метод и переопределение метода.
****
Абстрактный метод — метод, который должен быть реализован в классе-наследнике и не должен — в классе-родителе.
Виртуальный метод — метод, который может быть переопределен в классе-наследнике и может иметь (а может и не иметь) реализацию в классе-родителе.
Переопределение метода — изменение реализации виртуального метода.
Post #419
4.54K