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

Автор: Пользователь скрыл имя, 18 Сентября 2011 в 21:41, курсовая работа

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

Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка Бейсик, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.

Оглавление

ВВЕДЕНИЕ 2
1.ЗАДАЧА 1 6
2. ЗАДАЧА 2 12
3. ЗАДАЧА 3 15
4. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД 18
5. ОБЪЕКТ МОДЕЛЬ 20
5.1 Абстрагирование 20
5.2 Инкапсуляция 21
5.3 Модульность 22
5.4 Иерархичность 25
5.5 Типизация 26
5.6 Паралеллизм 27
5.7 Сохраняемость 27
6. ОБЪЕКТ 29
6.1 Состояние 29
6.2 Поведение 29
6.3 Идентичность 30
6.4 Отношения между объектами 30
7. КЛАССЫ 31
7.1 Ассоциация; 31
7.2 Агрегация; 32
7.3 Обобщение; 33
7.4 Зависимость; 34
7.5 Инстанцирование. 35
ЗАКЛЮЧЕНИЕ 36
ЛИТЕРАТУРА 37

Файлы: 1 файл

Курсовой информатика.doc

— 201.50 Кб (Скачать)

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

       Типизация

     Типизация – это способ защититься от использования объектов одного класса (типа) вместо другого, или, по крайней мере, управлять таким использованием.

     Полиморфизм – это способ присваивать различные значения (смыслы) одному и тому же сообщению. Смысл зависит от типа обрабатываемых данных.

     Имеется несколько типов полиморфизма.

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

     Перегрузка. Функция или оператор вызывается на основе сигнатуры.

       Параллелизм

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

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

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

Параллелизм – это свойство, отличающее активные объекты от неактивных.

       Сохраняемость

     Любой программный объект существует в  памяти и живет во времени.

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

     – промежуточные результаты вычисления выражений;

     – локальные переменные в вызове процедур;

     – глобальные переменные и динамически создаваемые данные;

     – данные, сохраняющиеся между сеансами выполнения программы;

     – данные, сохраняемые при переходе на новую версию программы;

     – данные, которые вообще переживают программу.

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

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

     В результате получим следующее определение. Сохраняемость – это

способность объекта существовать во времени, переживая породивший

его процесс, и (или) в пространстве, перемещаясь  из своего первоначального адресного пространства. 
 
 
 
 
 
 
 
 
 
 
 

ОБЪЕКТЫ 

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

       Состояние

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

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

     Поведение

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

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

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

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

       Идентичность

     Идентичность  – это такое свойство объекта, которое отличает его от всех других объектов.

     Источником  ошибок в объектно-ориентированном  программировании является неумение отличать имя объекта от самого объекта.

     Уникальная  идентичность каждого объекта сохраняется на все время его существования, даже если его внутреннее состояние изменилось. При этом имя объекта не обязательно сохраняется.

       Отношения между  объектами

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

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

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

КЛАССЫ 

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

     Класс – это множество объектов, имеющих общую структуру и общее поведение. Любой конкретный объект является экземпляром класса.

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

     – ассоциация;

     – агрегация;

     – обобщение;

     – зависимость;

     – инстанцирование.

       Ассоциация

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

     Кратность (мощность) ассоциации – это количество ее участников. Различают три случая кратности ассоциации:

     – один-к-одному;

     – один-ко-многим;

     – многие-ко-многим.

     Класс может иметь ассоциацию с самим собой. Такая ассоциация называется рефлексивной.

       Агрегация Агрегация является частным случаем ассоциации. Отношение агрегации между классами имеет непосредственное отношение к агрегации между их экземплярами.

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

     Обобщение (наследование) – это такое отношение между классами, когда один класс повторяет структуру и поведение другого класса (одиночное наследование) или других классов (множественное наследование).

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

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

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

     Для этой цели описание класса разделяется  на три части:

     – открытую (public), видимую всем клиентам;

     – защищенную (protected), видимую самому классу, его подклассам и друзьям (friend);

     – закрытую (private), видимую только самому классу и его друзьям.

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

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