Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
oaip_2 / Курсовая ОАиП.doc
Скачиваний:
95
Добавлен:
27.05.2013
Размер:
204.8 Кб
Скачать

Часть II. Самостоятельная работа

РЕФЕРАТ

Объектно-ориентированное программирование.

Статические и виртуальные методы.

ВВЕДЕНИЕ

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

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

Следует иметь в виду, что объектно-ориентированное программирование в настоящее время переживает период бурного развития. Появившись впервые в начале 80-х годов, этот термин (object-oriented programming), был связан с семейством языка Simula-67. К настоящему времени многие распространенные языки, первоначально рассчитанные на традиционный подход к программированию содержат ряд объектно-ориентированных расширений. Кроме представленных в этом реферате расширений языка Pascal (основы которых заложены в проекте Object Pascal фирмы Apple в середине 80-х годов ), можно указать например, широко известный язык С++(объектно-ориентированное расширение языка С).

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

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

Гради Буч выделил две разновидности методологии:

  • Алгоритмическую (так он называет методологию поддерживаемую структурными методами)

  • Объектно-ориентированную

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

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

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

Основные понятия и определения.

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

Объект- осязаемая сущность, которая четко проявляет свое поведение”, говорил Гради Буч. Объект характеризуется как совокупностью всех своих свойств (например для животных это – наличие головы, ушей, глаз и т.д.) и их текущих значений (голова – большая, уши – длинные, глаза – зеленые и т.д.), так и совокупностью ддля данного объекта действий (умение сидеть, бежать,стоять, идти и т.д.).

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

Другим принципом управления сложностью проекта является иерархическое упорядочение объектов.

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

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

Родительские типы также называют просто родителями или предками , а дочерние – потомками.

По Гради Бучу “наследование – такое отношение между объектами, когда один объект повторяет структуру и поведение другого”.

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

Еще одним основным понятием ОО - программирования является полиморфизм- который представляет собой свойство различных объектов выполнять одно и то же действие по своему. Например действие “бежать” присуще большинству животных, однако каждое из них выполняет это действие различным образом (лев, жираф, черепаха).

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

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

Выше упомянули слово метод, под методом понимают процедуру или функцию включенную в объект таким образом, что экземпляр данного типа становится доступным для нее изнутри.

Соседние файлы в папке oaip_2