Классамив Delphi называют специальные типы, которые содержат поля, методы и свойства.
Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, которые называются объектами. В Turbo Pascal объект – это тип массива или переменной.
Например, Type mass=array[1..5]of real; -это тип,
а конкретный экземпляр реализации – это конкретный массив Var A:mass;
Объекты, инкапсулирующие одинаковый перечень свойств и операций, объединяются в классы.
Итак, объект – это конкретный экземпляр реализации класса.
Термин классзаимствован из C++.
В Delphi входит несколько сотен стандартных классов, созданных программистами корпорации Borland. Совокупность стандартных классов определяет мощные возможности этой системы программирования.
Центральным компонентом каждого приложения (так принято называть прикладную программу) является окно - форма. Оно соответствует классу TForm и объекту Form1.
Программист на основе этого класса создает дочерний путем добавления в класс формы дополнительных полей: кнопок, меток, полей ввода/вывода и т.д.
Под компонентом понимается некий функциональный элемент, содержащий определенные свойства и размещаемый программистом в окне формы.
Каждый компонент принадлежит к строго определенному классу, а все конкретные экземплярыкомпонентов, вставляемые в форму, получают имя класса с добавленным числовым индексом.
По используемому в Delphi соглашению все имена классов начинаются с буквы T:
TForm1, TButton, TLabel.
Delphi имеет большую библиотеку встроенных классов. Каждый класс в библиотеке имеет картинку (ярлычок), изображающую объект такого класса: кнопки, метки, переключатели и др.
Составляющие такой библиотеки называются компонентами. Они располагаются на палитрах экранной среды Delphi:
В основе классов лежат три фундаментальных принципа, которые называются инкапсуляция, наследование и полиморфизм.
Объект можно определить как продукт инкапсуляции данных вместе с кодом, предназначенным для их обработки
Объединение в объекте его свойств и методов называют инкапсуляцией (encapsulation).
Некоторые свойства и методы доступны внешним объектам, а некоторые целесообразно спрятать для внутреннего пользования.
Этот принцип сокрытия – один из принципов ООП, называемый инкапсуляцией.
Инкапсуляция означает, что объект инкапсулирует (содержит) в себе свойства и методы, но описывать мы ничего не должны. Под термином «инкапсуляция» подразумевается то, что мы работаем (взаимодействуем) с объектом, совершенно не зная об его устройстве.
Пример: компьютерная мышь. В распоряжении пользователя только несколько кнопок и колесо. Как она устроена знает только разработчик.
Главное преимущество инкапсуляции заключается в том, что достаточно один раз описать структуру объекта, чтобы в дальнейшем использовать его в любом месте программы.
Например,
класс TForm содержит (инкапсулирует в себе) все необходимое для создания Windows-окна,
класс TEditсодержит (инкапсулирует в себе) все необходимое для однострочного ввода/редактирования данных,
класс TMemoпредставляет собой многострочный текстовый редактор и т.д.
Инкапсуляция представляет собой мощное средство обмена готовыми к работе программными заготовками.
ü Наследование.
Любой класс может быть порожден от другого класса.
В ООП объекты объединены в классы.
Класс нематериален, он не соответствует каким-то конкретным данным.
В классе описано, какие переменные и с какими значениями могут быть у объекта. Могут
быть, а не есть в данный момент.
Объект же, наоборот, материален. Он занимает место в памяти компьютера, все его переменные имеют в каждый момент вполне определенные значения.
Именно для конкретных объектов вызываются методы, хотя сами методы описаны в классе, к которому принадлежит данный объект.
Для этого служит механизм наследования – один из трех основных принципов ООП.
Принцип наследования позволяет устанавливать между объектами связи типа «родитель-потомок». Объект-потомок наследует от объекта-родителя все его атрибуты и особенности поведения, но предполагает наличие у потомка ряда новых атрибутов и функциональных возможностей.
Принцип наследования можно проиллюстрировать на примере иерархии объектов: