ФЭНДОМ


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

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

Надо отметить, что кроме концепции, основанной на классах (о которой и пойдёт речь ниже), существует также концепция ООП, основанная на прототипах — прототипное программирование.

Реализационный подход Править

Каждый объект в ООП имеет свой тип (класс). Класс представляет собой тип данных, имеющий в составе:

Свойства 
Параметры объекта (конечно, не все, а только необходимые в программе).
Методы 
Действия, которые можно выполнять над объектом такого типа, или которые сам объект может выполнять.

Концептуальный подход Править

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

Важнейшие принципы Править

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

Объектно-ориентированные языки Править

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

Неполный список объектно-ориентированных языков программирования:

См. также Править

Шаблон:Wikibooks

<span id="interwiki-vi-fa" />ar:برمجة شيئية bg:Обектно-ориентирано програмиране ca:Orientació a objectes cs:Objektově orientované programování da:Objektorientering de:Objektorientierte Programmierung en:Object-oriented programming eo:Objektema programado es:Programación orientada a objetos fi:Olio-ohjelmointi fr:Programmation orientée objet he:תכנות מונחה עצמים hu:Objektumorientált id:Pemrograman Berorientasi Objek io:Objektema programado ja:オブジェクト指向 lt:Objektinis programavimas ms:Pengaturcaraan Berorientasikan Objek nl:Object-oriëntatie no:Objektorientert programmering pl:Programowanie obiektowe pt:Orientação a objeto sv:Objektorienterad programmering th:การเขียนโปรแกรมเชิงวัตถุ uk:Об’єктно-орієнтоване програмування vi:Lập trình hướng đối tượng zh:面向对象的程序设计

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

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

Также на ФЭНДОМЕ

Случайная вики