Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вопрос 20. ООП. Отличие от процедурного программирования




Объектно-ориентированное программирование (ООП) стало чрезвычайно популярно в последнее время. Объектно-ориентированное программирование часто называют новой парадигмой программирования. Другие парадигмы программирования: директивное (языки типа Pascal или C), логическое (языки типа Prolog) и функциональное (языки типа Lisp) программирование. Действие в объектно-ориентированном программировании инициируется посред­ством передачи сообщений агенту (объекту), ответственному за действие. Сооб­щение содержит запрос на осуществление действия и сопровождается допол­нительной информацией (аргументами), необходимой для его выполнения. Получатель — это агент, которому посылается сообщение. Если он принимает сообщение, то на него автоматически возлагается ответственность за выполнение указанного действия. В качестве реакции на сообщение получатель запустит некоторый метод, чтобы удовлетворить принятый запрос. Скрытие информации является важным принципом и в традиционных язы­ках программирования. Тогда в чем пересылка сообщений отличается от обычного вызова процедуры? В обоих случаях имеется последовательность точно определенных действий, которые будут инициированы в ответ на запрос. Однако имеются два существенных отличия.

Первое из них состоит в том, что у сообщения имеется вполне конкретный получатель — агент, которому послано сообщение. При вызове процедуры нет столь явно выделенного получателя. (Хотя, конечно, мы можем принять согла­шение, согласно которому получателем сообщения является первый аргумент в вызове процедуры — примерно так и реализуются получатели сообщений).

Второе отличие состоит в том, что интерпретация сообщения (а именно метод, вызываемый после приема сообщения) зависит от получателя и явля­ется различной для различных получателей. Фундаментальной концепцией в объектно-ориентированном программировании является понятие обязанности или ответственности за выполнение действия.

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

Отличие ООП от структурного: 1. Структурное программирование уделяет внимание структуре отдельных частей в программе. ООП учитывает в большей части характер взаимосвязей между отдельными частями программы. 2. Структурная иерархия строится по простому принципу разделения целого на составляющие части. ООП отражает классификацию типов объектов.

 

Вопрос 21. Понятие класса и объекта.

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

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

Классы представляются в виде иерархической древовидной структуры, в которой более абстрактные располагаются в корне дерева, а более специализированные классы и в конечном итоге индивидуумы располагаются на его конце, в ветвях. Классы могут быть организованы в иерархическую структуру с наследованием свойств. Дочерний класс (или подкласс) наследует атрибуты родительского класса (или надкласса), расположенного выше в иерархическом дереве. Абстрактный родительский класс — это класс, не имеющий экземпляров.

 




Поделиться с друзьями:


Дата добавления: 2015-03-31; Просмотров: 6517; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.