Студопедия

КАТЕГОРИИ:


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

Наследование

Классы содержат данные и методы. В ООП методы и данные одного класса могут передаваться другим классам. Это означает, что объекты могут наследовать свойства друг друга. Класс, наследующий свойства другого класса, обладает теми же возможностями, что и класс, от которого он порожден. Этот принцип называется наследованием (inheritance). Порожденный класс называется потомком (descendant), а тот от кого он порожден - предком (ancestor). Благодаря новым свойствам, которыми дополняется потомок, порожденный класс может обладать большими возможностями, чем его предок.

В приведенном примере (рис.1) класс труба происходит непосредственно от класса духовые инструменты. Таким образом, уже определено, что для получения звука в трубу необходимо дуть, и это ее свойство не надо переопределять заново. Этот же принцип соблюдается и для свойства музыкальных инструментов издавать звуки. Это свойство класса Музыкальные инструменты перенесено на класс Труба через его прямого предка, класс Духовые инструменты.

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

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

Инкапсуляция

Совмещение данных и методов их обработки в одном объекте называется инкапсуляцией (encapsulation). Методы объекта определяют способы изменения данных.

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

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

Этот принцип сокрытия информации (information hiding) характерен для инкапсуляции и существенно облегчает написание больших и стабильно работающих приложений.

 

Полиморфизм

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

 

Класс - новый тип данных

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

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

Объекты, классы и экземпляры

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

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

Объект - это экземпляр класса. Предварительно выбранные объекты, которые используются в программе (Объекты Visual Basic for Application, Visual Basic, Visual C++, компоненты среды Delphi и Builder С++) это экземпляры классов.

Экземпляр класса реализуется переменной определенного типа класса.

Итак, на основании изложенного материала можно сделать следующие выводы:

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

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

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

<== предыдущая лекция | следующая лекция ==>
Объектно-ориентированное программирование. Реализацтя концепции ООП в VBA | End Sub
Поделиться с друзьями:


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


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



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




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