Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Infa_ekzamen.doc
Скачиваний:
76
Добавлен:
09.06.2015
Размер:
2.16 Mб
Скачать

25.Понятие области видимости:общие,личные,защищенные и опубликованные поля и методы объекта.

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

Описание класса, как правило, содержит несколько директив, которые устанавливают степень видимости элементов класса в программе. Рассмотрим семантику директив видимости.

1.Директива Private. Поля, свойства и методы, описанные разделе private, называются личными или закрытыми. Сюда помещаются элементы (чаще всего поля), которые выполняют в объекте специфичные функции и которые поэтому целесообразно скрыть от других частей программы, либо такие элементы, для которых по ряду причин не следует разрешать доступ извне объекта. 2.Директива public. Элементы, описанные в разделе public, называются общедоступными. Они могут быть использованы всюду в программе. Поля, свойства и методы, расположенные сразу после заголовка класса, при выключенной директиве компилятора {$M-}, по умолчанию принимаются общедоступными. 3.Директива protected. Элементы класса, объявленные в разделе protected (защищенный), доступны только в классах, порожденных от исходного. Здесь размещаются элементы, которые важны лишь для функционирования объектов данного класса и его потомков. 4.Директива published. Поля, свойства и методы, описанные в разделе published, называются опубликованными. Их область видимости эквивалентна области видимости общедоступных описаний. Отличие состоит в том, что информация о них, за исключением ряда типов, например real, на этапе проектирования программы помещается в инспектор объектов. Описания, расположенные сразу после заголовка класса, при включенной директиве компилятора {$M+}, по умолчанию принимаются опубликованными. 5. Директива automated. Элементы класса, объявленные в разделе automated, называются автоматическими. Их область видимости эквивалентна области видимости общедоступных описаний. Отличие состоит в том, что для автоматических свойств и методов генерируется дополнительная информация, которая используется для реализации OLE-механизма. Использовать директиву automated имеет смысл при объявлении потомков стандартного класса TAutoObject.

26.Указатель This и перегрузка методов.

Рассмотрим на примере: Tmoney

Tmoney^^AddMoney(const Tmoney&b) {Tmoney a=*th;s;//локальному параметру а присвоим значение текущего объекта; a.summa+=b.summa;//слжим с суммой объекта параметр а; return a;}

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

Ключевое слово this — указатель на объект для которого вызван метод, т.о метод получает дополнительный неявный параметр — указатель на текущий объект, который используется для обращения к полям объекта так: this->summa.

Один из основных принципов ООП — полиморфизм, а его принцип — переопределение функций — перегрузка. Методы этой функции — члены класса и они могут перегружатся.

Рассмотрим на примере AddMoney:определим с этим же именем метод суммирования денег с числом, где число денежная сумма — константа.

Tmoney Tmoney::AddMoney (const double &b) {Tmoney a; // объявим локальный объект;

a.Init (b); // инициализируем локальный объект формальным параметром;

return a.AddMoney (*this);} // сложим с суммой текущего объекта и возвратим его в качестве результата. Возврат результата суммирования : return(*this).AddMoney(a);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]