русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Понятие об объектах


Дата добавления: 2015-07-09; просмотров: 1923; Нарушение авторских прав


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

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

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

 
 

 



 




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

· человек как студент учебного заведения

· человек как сотрудник организации

· человек как пациент учреждений здравоохранения

· человек как подопечный органов внутренних дел и т.д.

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

· простейшие примитивные типы (целые, строковые, вещественные, логические);

· структурированные типы (массивы, записи или структуры);

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

Наличие объектных свойств является проявлением одного из способов взаимодействия объектов – так называемой агрегации,котораяболее подробно рассматривается в разделе 2.2.

Набор свойств объекта создается при описании объекта и в дальнейшем не изменяется. В качестве примеров свойств можно привести:

· объект-файл: имя, размер, дата создания, тип;

· объект-список: тип, число элементов, адрес первого элемента;

· объект-окно: положение на экране, размеры, тип, фон заполнения, тип рамки, оформление заголовка;

· объект-автомобиль: стоимость, тип, марка, мощность двигателя, цвет и т.д.;

· объект-студент: имя и фамилия, группа, специальность, оценки;

· объект-окружность: координаты центра, радиус, состояние видимости, цвет.

Поведение объекта описывается набором методов. Каждый метод – программный код, оформленный в виде некоторой функции. Объединение вместе обрабатываемых данных (свойств) и программного кода для их обработки (т.е. методов) называют принципом инкапсуляции. Этот принцип является одним из базовых в ООП. Если раньше данные и функции их обработки существовали независимо друг от друга, то в объектном подходе они образуют новую сущность – объект. Другими словами, объект сам отвечает за обработку своих данных. Это позволяет более четко распределять обязанности в объектной программе. Объект можно рассматривать как «черный ящик», выполняющий определенный набор функций. Реализация этих функций не должна интересовать пользователя-клиента, ему достаточно знать лишь набор предоставляемых объектом услуг.

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

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

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

2. Методы, с помощью которых можно узнать текущее значение тех или иных свойств. Обычно для каждого свойства создается свой метод доступа к хранящемуся в нем значению. Принято присваивать таким методам имена, состоящие из двух частей - префикса Get и имени соответствующего свойства, например – GetColor, GetName, GetPrice. Такие Get-методы обычно оформляются как функции, возвращающие значение соответствующего свойства.

3. Методы, отвечающие за изменение значения одного или нескольких свойств. Их принято начинать с префикса Set, например, SetColor, SetName, SetPrice. Новые значения свойств передаются как параметры Set-методов. Несмотря на некоторое синтаксическое сходство, необходимо различать действия, выполняемые конструкторами и Set-методами: конструктор создает новый объект, а Set-метод лишь изменяет значение одного или нескольких свойств для уже созданного объекта. Довольно часто Set-методы перед изменением значений свойств выполняют дополнительную работу, например – проверяют новые значения свойств.

Наличие Set/Get-методов объясняется тем, что в соответствии с принципом инкапсуляции свойства объекта должны быть закрыты для постороннего вмешательства. Доступ к свойствам должен осуществляться только через вызовыGet/Set-методов. В этом случае детали внутренней реализации хранения данных объекта полностью закрыты от пользователей. Набор методов доступа образует открытый интерфейс объекта.

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

· объект-файл: копирование, удаление, перемещение;

· объект-список: добавление, удаление и поиск элемента;

· объект-окно: перемещение, изменение атрибутов, отображение;

· объект-автомобиль: запуск двигателя, разгон/торможение, поворот;

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

· объект-окружность: отображение, перемещение, растяжение/сжатие.

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

 





<== предыдущая лекция | следующая лекция ==>
История развития объектной технологии | Классы и их описание


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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