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

14. Методы:

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

Определение методов можно давать как внутри класса (стиль Java, C#, C++), так и вне класса (стиль Delphi, C++). При определении метода вне интерфейса класса его имя предваряется именем класса с последующей точкой. Например:

type   <имя класса1> = class     <описание полей класса>;     constructor Create(<параметры>);     begin <тело конструктора>     end;     function <метод1>: integer;   end;

function <имя класса1>.<метод1>: integer; begin   <тело метода> end;

Методы делятся на классовые и экземплярные. Классовые методы в .NET называются статическими. Объявление классового метода начинается с ключевого слова class. Экземплярные методы можно вызывать только через переменную-объект класса. Классовые же методы не связаны с конкретным экземпляром класса; их следует вызывать в виде:

<имя класса>.<имя метода>(параметры)

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

16. Свойства:

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

property <имя>: <тип> read <имя функции чтения> write <имя процедуры записи>;

Как правило, каждое свойство связано с некоторым полем класса и возвращает значение этого поля с помощью функции чтения, а меняет - с помощью процедуры записи. Функция чтения и процедура записи должны быть методами этого класса и иметь следующий вид:

function <имя функции чтения>: тип; procedure <имя процедуры записи>(<параметр>: <тип>);

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

Свойства не могут передаваться по ссылке в процедуры и функции.

17. Наследование:

Класс может быть унаследован от другого класса. Класс, от которого наследуют, называют базовым классом (надклассом, предком), а класс, который наследуется, называется производным классом (подклассом, потомком). При наследовании все поля, методы и свойства базового класса переходят в производный класс, кроме этого, могут быть добавлены новые поля, методы и свойства и переопределены (замещены) старые методы.

type

<имя класса1>=class

<описание полей >

function <имя метода1>(<параметры>);

begin

<тело метода>

end;

end;

<имя класса2>=class(<имя класса1>)

<описание полей >

function <имя метода1>(<параметры>);

begin

<тело метода>

end;

procedure <имя метода2>(<параметры>);

begin

<тело метода>

end;

end;

Перед словом class может быть указано ключевое слово final – в этом случае от класса запрещено наследовать.