КАТЕГОРИИ: Архитектура-(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; Просмотров: 446; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |