Воскресенье, 06.07.2025, 07:58
Системы автоматизированного проектирования в радиоэлектронике
В начало | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Класс – тип данных, в котором сочетаются сгруппированные данные (например, поля в записях), свойства и методы их обработки (подпрограммы).
Класс – это тип данных, а объект – конкретный экземпляр класса, т.е. класс служит образцом для создания объектов. 
Классы имеют поля, свойства и методы.

В основе классов лежат три фундаментальных принципа:
Наследование. Описывается один базовый класс, а производные классы будут основываться на этом базовом классе. При этом наследуются все поля, свойства и методы базового (родительского) класса. Можно вводить новые поля, свойства и методы в дополнение к наследуемым. Методы для наследников разрешается переопределять. Прибор – переносной плеер. 
Принцип наследования приводит к созданию ветвящегося дерева классов. Каждый потомок дополняет возможности родителя новыми и передает их своим потомкам.
Полиморфизм. Это свойство классов решать схожие задачи разными способами. Изменяя алгоритм метода в потомках класса (перекрывая его), можно получить два одноименных метода с разной алгоритмической основой, которые будут придавать объектам разные свойства. Решение, метод какого класса вызывается при обращении к переменной, может приниматься, например, в зависимости от типа переменной. Если переменная относится к типу плеер, то будет вызван метод «включить», определенный именно для плеера.
Инкапсуляция. Объединение в единое целое трех сущностей (полей, методов и свойств) называется инкапсуляцией. Это делает класс самодостаточным для решения конкретной задачи. Например, класс TMemo представляет собой текстовый редактор, класс TForm соединяет (инкапсулирует в себе) все необходимое для создания Windows-окна. Инкапсуляция – средство для создания библиотеки классов. Она обеспечивает разграничение доступа к различным полям и свойствам класса:
- в любом месте программы;
- внутри текущего модуля.
Свойства не должны изменяться бесконтрольно (например: плеер – мощность звука – а батарейка?). Должны быть созданы методы, которые позволят учитывать взаимное влияние свойств, а сами свойства и поля могут быть скрыты для доступа извне.

Описание класса

Type имя класса =
Class имя родительского класса 
Список членов класса
End.
Пример:
Type TMy Class = class
Count = integer;
Name=string;
Procedure Show My Class (dis=boo)
Function Get Count: integer;
End.

В классе TMyClass имеются два поля Count и Name, процедура и функция. 
Переменная MyClass – объект, экземпляр класса TMyClass. Var My Class: TMyClass;
Доступ к полям и методам объекта – как и к полям записи:
Var O=TMyClass
O. Count: = 1;
O. Name: = Класс;

Доступность членов класса зависит от уровней видимости класса, вводимых при описании членов: public, private, protected, published, automated. 
После описания класса описывается (приводится) реализация его методов:
Function TMyClass, Get Count = integer;
Begin
Result: = Count
End;

Чаще всего, большая часть функциональности исследуемых методов уже описана в родительском классе (класс TButton уже обрисовывает кнопку). Т.е. можно вызвать метод из родительского класса, а затем добавить к кнопке еще что-нибудь. Для этого в нужном месте метода ставится ключевое слово inherited, что вызовет одноименный метод родительского класса. Вызвать другой метод из родительского класса можно явным указанием его имени:
Inherited Click.
Методы при описании класса можно снабжать дополнительными характеристиками. Они показывают, как будет этот метод реализовываться в классах-наследниках:
- статические методы (при известных типах объектов);
- виртуальные и динамические методы;
Procedure Move; virtual (dynamic);
Такие методы могут быть перекрыты в классах-наследниках методами с одноименными заголовками (названиями). 
Procedure Move; override;
Здесь автоматически будет определяться тип объекта.
- абстрактные методы.
Метод в родительском классе не имеет реализации, а полностью (и различно) реализуется в наследниках.
Тип объекта может быть определен специальной операцией is. 
Объект is тип – true или false.

Составляющие класса:
Поля. Полями называются инкапсулированные в классе данные, которые могут быть любого типа.
Каждый объект получает уникальный набор полей, но общий для этого класса набор методов и свойств. Обращение к полям – лучше только с помощью методов и свойств класса.
Методы. Методы – это инкапсулированные в класс процедуры и функции.

Поиск
Друзья сайта
Copyright MyCorp © 2025
Конструктор сайтовuCoz