Студопедия

КАТЕГОРИИ:


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

Пример для освежения в памяти




Среды разработки, использующие принципы RAD

· Borland Delphi

· Borland C++ Builder

· Microsoft Visual Studio

· Macromedia Flash

· Macromedia Authorware

· Macromedia Director

· Omnis Studio

· Visual DataFlex

· IntraWeb

 

Лекция №3 ООП. Понятия объекта, свойства, метода, события.

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

 

struct point { int x; int y;}; main(){ point pt; pt.x=1; pt.y=2; }

 

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

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

Делается это для решения следующих задач:

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

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

Чтобы обеспечить скрытие данных при описании объекта необходимо указать все процедуры и функции, обеспечивающие необходимые операции с данными, т. е. их чтение, преобразование и запись. Эти функции и процедуры называют методами объекта, и только через них происходит общение с данными объекта.

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

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

Для составления окончательного определения необходимо рассмотреть взаимодействие объектов.

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

При разработке пользовательского интерфейса в Borland C++ Builder часто всё программирование сводится к написанию обработчиков событий, т.к. все остальные действия максимально автоматизированы и выполняются с помощью среды визуального программирования.

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

 

Организуется форма с элементами для ввода чисел (Edit1, Edit2), вывода результата (Label) и сигнала к расчету и выводу результата на форму (Button).

 

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

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Label1->Caption=FloatToStr(StrToFloat(Edit1->Text)+StrToFloat(Edit2->Text));

}

 

После компиляции и запуска получим приложение

 

Взаимодействие объектов можно показать следующим образом

 

 

 

Окончательное определение объекта – совокупность свойств и методов, а также со­бытий. на которые он может реагировать.

Условно это изображено на рис. 3.

 

Рис. 3

 

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

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

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

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

Включать объекты в свою программу можно двумя способами: вручную включать в нее соответству­ющие операторы (это приходится делать не очень часто) или путем визуального программирования, ис­пользуя соответствующие программные заготовки в виде объектов или наборов объектов, хранящихся в библиотеках. В Borland C++ Builder их называют компоненты. Стандартный набор компонент с наиболее часто встречающимися элементами интерфейса находятся в библиотеке VCL Visual Components Library и входит в комплект поставки Borland C++ Builder. Они доступны с палитры компонент сразу после установки пакета Borland C++ Builder.

 

 

Лекция №4 Классы

 




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


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


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



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




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