Разработка классов предметной области "Кошки"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



elphi это структурированный тип данных (как array, record) , конкретный экземпляр класса (переменная типа класс) называется объектом. Объекты относятся к динамическим структурам данных т.е. они обязательно должны создаваться (удаляться) на этапе выполнения проекта.

В основе классов лежат три фундаментальных принципа - инкапсуляция, наследование и полиморфизм.

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

Класс представляет собой единство трех сущностей - полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его самодостаточным для решения конкретной задачи. В результате класс всегда несет в себе некоторую функциональность. Например, класс TForm содержит (инкапсулирует в себе) все необходимое для создания Windows-окна, класс TMemo представляет собой полнофункциональный текстовый редактор и так далее.

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

Область видимости членов класса определяется следующими ключевыми словами:

  • Public - члены класса находящиеся в данном разделе доступны из любой точки программы
  • Private - этот раздел накладывает самые жесткие требования на видимость. Члены класса в данном разделе доступны только в текущем модуле. Как правило, в данную секцию помещают поля.
  • Protected - в отличие от Private члены из этого класса доступны в классах наследниках описанных в других модулях
  • Published - в этом разделе располагаются свойства класса, доступные из Инспектора Объектов, что позволяет их менять на этапе проектирования. Область видимости совпадает с Public.

По умолчанию считается, что все поля расположены в разделе Private.

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

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

Класс потомок (дочерний класс) наследует все свойства и методы родительского класса и дополняется рядом собственных свойств и методов. Такая возможность порождения нового класса на основе другого класса называется наследованием и представляет один из принципов ООП. При создании класса необходимо выбрать нужный родительский класс и дополнить (детализировать) его.

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

В класс можно включать несколько конструкторов. При создании объекта использовать любой конструктор из данного класса или родительского класса. Если в описании класса отсутствует конструктор, то при создании объекта можно использовать любой конструктор из родительского класса.

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

Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося при перемещении от TObject к его потомкам. Каждый потомок дополняет возможности своего родителя новыми свойствами и передает их своим потомкам.

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

Каждый объект обязательно описывается в разделе описания переменных. Объекты относятся к динамическим структурам данных поэтому они должны создаваться (удаляться) на этапе выполнения проекта. При создании объекта вызывается специальный метод (метод класса), называемый конструктором, После окончания работы с объектом он должен быть обязательно удален (уничтожен) методом - Free.

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

Полиморфизм - это свойство классов решать схожи