русс | укр

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

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

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

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


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

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


Дата добавления: 2014-02-04; просмотров: 1031; Нарушение авторских прав


 

Определим некоторые базовые понятия объектно-ориентированного программирования.

Класс - это категория объектов, обладающих одинаковыми свойствами и поведением. При этом объект представляет собой просто экземпляр какого-либо класса. Например, в Delphi тип "форма" (окно) является классом, а переменная этого типа - объектом.

Класс в программировании это неоднородная структура. Он также как и запись содержит поля. Также он содержит методы и свойства.

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

Класс в Delphi, предназначенный для визуальной разработки программ, называется компонентом. Такие классы содержат обработчики событий. Обработчик события это свойство, в которое связывается с методом данного класса, который будет вызываться для обработки события.

Метод - это процедура, которая определена как часть класса и инкапсулирована (содержится) в нем.

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

Методы манипулируют полями и свойствами классов (хотя могут работать и с любыми переменными) и имеют автоматический доступ к любым полям и методам своего класса. Доступ к полям и методам других классов зависит от уровня "защищенности" этих полей и методов.

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

Объектно-ориентированный стиль позволяет определить новые методы со старыми именами, переопределив тем самым методы класса-предка. Такое свойство называется полиморфизмом. Остальные элементы класса не могут быть переопределены.



Проблемой реализации объектной ориентированности языка является проблема диспетчеризации вызовов методов объектов.

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

Существует три способа диспетчеризации методов:

- статический,

- виртуальный

- динамический.

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

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

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

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

В отличие от виртуальных методов и самой идеологии VMT, таблица динамических методов (DMT) содержит входы только для методов, объявленных или перекрытых для данного класса. На каждый динамический метод приходится только одна ссылка, представленная так называемым "индексом", по которому и происходит поиск метода для вызова.

 



<== предыдущая лекция | следующая лекция ==>
Событийная модель ОС Windows | Структурное объектно-ориентированное программирование


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


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

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

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


 


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

 
 

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

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