Студопедия

КАТЕГОРИИ:


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

Инкапсуляция и свойства объектов




Основные принципы объектноориентированного программирования

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

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

Внутри объекта методы и данные могут быть закрытыми. Закрытые методы или данные доступны только для других частей этого объекта. Таким образом, закрытые коды и данные недоступны для тех частей программы, которые существуют вне объекта. Если методы и данные являются открытыми, то, несмотря на то что они заданы внутри объекта, они доступны и для других частей программы. Характерной является ситуация, когда открытая часть объекта используется для того, чтобы обеспечить контролируемый интерфейс закрытых элементов объекта

В языке Delphi ограничение доступа к полям объекта реализуется при помощи свойств объекта

Свойство (Property) объекта - характеристика объекта, которая определяется полем, сохраняющим значение свойства, и двумя методами, обеспечивающими доступ к полю свойства. Метод установки значения свойства называется методом записи свойства (write), а метод получения значения свойства - методом чтения свойства (read)

В описании класса перед именем свойства записывают слово property (свойство). После имени свойства указывается его тип, затем - имена методов, обеспечивающих доступк значению свойства. После слова read указывается имя метода, обеспечивающего чтение свойства, после слова w r i t e - имя метода, отвечающего за запись свойства. Если не требуется обработка при записи или чтении свойств, то можно просто указать имя поля после ключевых слов w r i t e и read

Ниже в листинге 4.5 приведен пример описания класса TPersonal, содержащего два свойства: Name и Age

Казалось бы, внешне применение свойств в программе ничем не отличается от использования полей объекта. Однако между свойством и полем объекта существует принципиальное отличие: при присвоении и чтении значения свойства автоматически вызывается процедура (функция), которая выполняет некоторую работу. Например, инструкция worker.Age:=2 5; на самом деле будет преобразована компилятором в инструкцию вида: w o r k e r. S e t A g e (2 5); В программе на методы свойства можно возложить некоторые дополнительные задачи. Например, с помощью метода можно проверить корректность присваиваемых свойству значений, установить значения других полей, логически связанных со свойством, вызвать вспомогательную процедуру и т.п

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

В приведенном выше описании класса TPersonal свойство Name доступно только для чтения, а свойство Age - для чтения и записи

Установить значение свойства, защищенного от записи, можно во время инициализации объекта(во время вызова конструктора)




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


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


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



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




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