Языки объектно-ориентированного программирования

Автор работы: Пользователь скрыл имя, 12 Апреля 2012 в 23:21, реферат

Краткое описание

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

Содержание работы

Введение 3
Сущность объектно-ориентированного подхода к программированию. 5
Модульное программирование 7
Нисходящее программирование 7
Пошаговое программирование 8
Структурное программирование 9
Понятия объекта, класса объектов 9
Основные понятия объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм. 10
Примеры языков объектно-ориентированного программирования: 12
Object Pascal 12
C++. 13
Common Lisp Object System (CLOS). 15
Ada. 16
Заключение. 19
Список литературы: 20

Содержимое работы - 1 файл

морковкина.docx

— 54.70 Кб (Скачать файл)

Министерство  образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение 
высшего профессионального образования

«ВЛАДИМИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Имени Александра Григорьевича и Николая  Григорьевича Столетовых»

(ВлГУ)

Кафедра «Физика и прикладная математика» 

Отчет по переаттестации по дисциплине “Языки программирования”

На тему “ Языки объектно-ориентированного программирования”

 

 

 

 

 

 

 

 

 

Выполнила:

ст. гр. ИТС-111

Морковкина  А.Я.

 

Принял:

Старший преподаватель

Павлова О.Н.

 

 

 

 

 

 

Владимир 2012

 

Оглавление

Введение 3

Сущность объектно-ориентированного подхода к программированию. 5

Модульное программирование 7

Нисходящее программирование 7

Пошаговое программирование 8

Структурное программирование 9

Понятия объекта, класса объектов 9

Основные понятия объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм. 10

Примеры языков объектно-ориентированного программирования: 12

Object Pascal 12

C++. 13

Common Lisp Object System (CLOS). 15

Ada. 16

Заключение. 19

Список литературы: 20

 

 

Введение

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

  • это инструмент проектирования;
  • это средство человеческого восприятия;
  • это средство управления компьютером.

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

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

Рассмотрим  наиболее известные из технологий:

- метод  "северо-западного" угла (имеется  в виду лист бумаги или экран  дисплея). Программа пишется сразу  от начала до конца, без использования  каких-либо общих принципов;

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

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

 

 

Сущность объектно-ориентированного подхода к программированию

 Основные идеи объектно-ориентированного  подхода опираются на следующие  положения:

- Программа представляет собой  модель некоторого реального  процесса, части реального мира.

 Модель реального мира или  его части может быть описана  как совокупность взаимодействующих  между собой объектов.

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

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

- Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий представляют собой класс однотипных объектов.

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

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

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

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

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

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

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

Модульное программирование

 

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

- размер  модуля должен быть ограничен;

- модуль  должен выполнять логически целостное  и завершенное действие;

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

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

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

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

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

Нисходящее программирование

 

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

- простой  последовательности действий;

- конструкции  выбора или оператора if;

- конструкции  повторения или цикла.

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

- первоначально  программа формулируется в виде  некоторого неформального действия  на естественном языке;

- первоначально  определяются входные параметры  и результат действия;

- очередной  шаг детализации не меняет  структуру программы, полученную  на предыдущих шагах;

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

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

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

Пошаговое программирование

 

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

То, что  этот принцип выделен отдельно, говорит  о необходимости предотвратить  соблазн детализации программы  сразу от начала до конца и развивать  умение выделять и сосредоточивать  внимание на главных, а не второстепенных деталях алгоритма.

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

Структурное программирование

 

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

Структурное программирование - модульное нисходящее пошаговое проектирование алгоритма  и структур данных.

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

 

Центральными  в ООП являются понятия класса и объекта. Образно говоря, ООП  заключается не столько в использовании  классов и объектов в программе, сколько в замене принципа программирования "от функции к функции" принципом  программирования "от класса к классу".

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

Информация о работе Языки объектно-ориентированного программирования