Home / IT Образование / ООП Объектно-ориентированное программирование Хабр

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

  • Именно он стал первым широко распространённым объектно-ориентированным языком программирования.
  • Но даже наличие инкапсуляции и наследования не делает язык программирования в полной мере объектным с точки зрения ООП.
  • Ведь работник остается все тем же человеком с именем и возрастом, но теперь у него есть новая характеристика – рабочий адрес.
  • Каждый программист может разрабатывать свою группу объектов.

Согласно этому принципу, вся ключевая информация, важная для работы объекта, находится в нем самом, а его внутренняя структура сокрыта от внешнего мира. Только некоторые данные доступны для внешних функций или объектов. Объектно-ориентированное программирование основывается на нескольких принципах, которые обеспечивают удобство использования этой парадигмы.

Зачем нужно ООП

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

что такое объектно ориентированное программирование

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

ООП – это что такое? Основные принципы объектно-ориентированного программирования

Если собака почувствует запах кошки, она залает и погонится за ней. А если собака почувствует запах своего корма, то у нее нач­нется слюноотделение, и она поспешит к своей миске. В обоих случаях действует одно и то же чувство обоняния. Этот общий принцип можно реализовать, применив его к методам в программе на Java. Назывались они так потому, что программист определял очень специфический набор процедур (подпрограмм), которые должен был выполнять компьютер.

что такое объектно ориентированное программирование

Если несколько частей кода делают почти то же, можно извлечь общие элементы и поместить их в одну процедуру. Три участка приложения могут вызвать функцию, чтобы выполнить общие действия, но они могут производить и свои собственные операции. Подобно этому базовый класс содержит данные, общие для группы производных. Подобно функциям наследование сокращает ОО-программу и проясняет взаимосвязь ее элементов. Сегодня наиболее широко используемый язык ООП (объектно-ориентированное программирование) – C++ (плюс-плюс). В Java отсутствуют некоторые функции, такие как указатели, шаблоны и множественное наследование, что делает его менее мощным и универсальным, чем C++.

Методы

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

что такое объектно ориентированное программирование

Алан Кэй, выдающийся американский ученый в области теории вычислительных систем и пионер ООП, назвал их «языками со склеенными возможностями». В принципе можно решить любую задачу программирования с помощью любой из парадигм ; потому что все парадигмы «полны по Тьюрингу». Ограничивающим элементом является не машина, а человек. Отдельные программисты или команды программистов могут контролировать только ограниченную сложность. Поэтому они используют абстракции, чтобы справиться со сложностью. В зависимости от области применения и задачи особенно подходит тот или иной стиль программирования.

Три принципа ООП

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

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

Определение ООП и его основные концепции

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

Инкапсуляция (Private и Public)[править]

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

Share

Recent comments