Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
павлов.doc
Скачиваний:
6
Добавлен:
20.04.2019
Размер:
295.94 Кб
Скачать

1)Понятие инкапсуляции.

Инкапсуляция 

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

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

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

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

Чем инкапсуляция заслужила право считаться одним из основных принципов объектно-ориентированного программирования?

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

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

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

2)Компоненты ado доступа к базам данных в Delphi.

Объект ADO Connection применяется для установки связи с источником данных. Он представляет единственную сессию. Этот объект позволяет изменить параметры соединения с базой данных, а также начать или завершить транзакцию. Используя объект Connection, мы можем выполнять команды (например, SQL-запросы) с помощью метода Execute. Если команда возвращает набор данных, автоматически создается объект Recordset, который возвращается в результате выполнения этого метода.

Объект Error используется для получения сведений об ошибках, возникающих в процессе выполнения.

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

Объект Recordset - это набор записей, полученных из источника данных, и может быть использован для добавления, удаления, изменения, просмотра записей. Данный объект может быть открыт непосредственно или создан с помощью объектов Connection или Command.

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

Библиотека ADO, являющаяся составной частью операционных систем Windows, начиная с Windows 2000, содержит два новых объекта - Record и Stream.

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

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

Билет 6

1).Использование инкапсуляции в описании класса. Секции класса: private, protected, public, published. Суть объектно-ориентированного подхода к программированию заключается в трех принципах: инкапсуляции, наследовании и полиморфизме. Для более надежной работы программы, Вы не должны напрямую обращаться к полям объекта. Вместо этого, Вы должны обращаться через специальные методы, которые могут проверить, например, на допустимость значения в заданном интервале или одновременно выполнить дополнительную работу по изменению состояния объекта, в зависимости от изменения значения поля - это и есть инкапсуляция. Такая возможность реализуется в классах через объявление свойств объекта. Свойство позволяет ограничить права на изменение значения поля и организует доступ к полю через методы. 

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

  • Private. Все, что объявлено в секции private недоступно за пределами модуля. Секция private позволяет скрыть те поля и методы, которые относятся к так называемым особеностям реализации. Public. Поля, методы и свойства, объявленные в секции public не имеют никаких ограничений на использование, т.е. всегда видны за пределами модуля. Все, что помещается в секцию public, служит для манипуляций с объектами и составляет программный интерфейс класса. Protected. Поля, методы и свойства, объявленные в секции protected, видны за пределами модуля только потомкам данного класса; остальным частям программы они не видны. Так же как и private, директива protected позволяет скрыть особенности реализации класса, но в отличие от нее разрешает другим программистам порождать новые классы и обращаться к полям, методам и свойствам, которые составляют так называемый интерфейс разработчика. В эту секцию обычно помещаются виртуальные методы. Примером такого метода является ParseLine.

  • Published. Устанавливает правила видимости те же, что и директива public. Особенность состоит в том, что для элементов, помещенных в секцию published, компилятор генерирует информацию о типах этих элементов. Эта информация доступна во время выполнения программы, что позволяет превращать объекты в компоненты визуальной среды разработки. Секцию published разрешено использовать только тогда, когда для самого класса или его предка включена директива компилятора $TYPEINFO.

Перечисленные секции могут чередоваться в объявлении класса в произвольном порядке, однако в пределах секции сначала следует описание полей, а потом методов и свойств. Если в определении класса нет ключевых слов private, protected, public и published, то для обычных классов всем полям, методам и свойствам приписывается атрибут видимости public, а для тех классов, которые порождены от классов библиотеки VCL, - атрибут видимостиpublished.