Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Основные принципы ООП




Классификация зыков программирования.

         
 

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

Структурный подход базируется на двух основополагающих принципах:

· •использование процедурного стиля программирования;

· •последовательная декомпозиция алгоритма решения задачи сверху вниз

· наиболее часто встречающаяся характеристика этого направления в программировании это использование трех видов операторов – следование, ветвление и циклы)

Принципиально иное направление в программировании связано с методологиями (иногда говорят «парадигмами») непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование.

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

1. Развитие языков и методов программирования не успевало за все более растущими потребностями в прикладных программах. {Единственным реальным способом снизить временные затраты на разработку был метод многократного использования разработанного программного обеспечения, т.е. проектирование новой программной системы на базе разработанных и отлаженных ранее модулей, кото­рые выступают в роли своеобразных «кирпичиков», ложащихся в фундамент новой разработки.

2. Ускорение разработки программного обеспечения требовало решения проблемы упрощения их сопровождения и модификации.

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

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

Понятие объекта и класса.

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

Объект — это понятие, сочетающее в себе совокупность данных и действий над ними. Свойства — это характеристики состояния объекта, а действия над данными объекта называются методами.

Термин класс объединяет объекты с одинаковыми возможностями (данными и методами). Он описывает общее поведение и характеристи­ки набора аналогичных друг другу объектов. Объект — это экземпляр класса или, другими словами, переменная, тип которой задается классом. Если говорить образно, то объекты — это «существительные», свойства объекта — это «прилагательные», а методы объекта — это «глаголы».

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

Объекты в отличие от классов реальны, т. е. существуют и хранят­ся в памяти во время выполнения программы. Соотношения между объектом и классом аналогичны соотношениям между переменной и типом.

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

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

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

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

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

Инкапсуляция – сокрытие информации и комбинирование данных и методов внутри объекта.

Полиморфизм. Методы объектов имеют одинаковое имя (и, соответственно, одинаковый ожидаемый результат), а внутреннее описание методов будет различно для разных объектов. Такое свойство объектов называется полиморфизмом.(пример с геометрическими фигурам и методом РИСОВАТЬ)

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

Полиморфизм – возможность задания в иерархии объектов различных действий в методе с одним именем

При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «операторы («команда»). Декларативные языки можно подразделить на два семейства - логические (типичный представитель - Пролог) и функциональные (Лисп). По всей видимости, непроцедурные языки имеют большое будущее. Все сказанное выше можно отобразить схемой - крупноструктурной классификацией языков программирования. В ней указаны основные методологии программирования; в нижнем ряду, в скобках - типичные языки соответствующих групп.

 




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


Дата добавления: 2014-01-06; Просмотров: 1757; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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