Программирование в среде Delphi. Часть 2. Создание оконных приложений. Садовская О.Б. - 3 стр.

UptoLike

Составители: 

3
2.1 Классы и объекты
Основные принципы
объектно-ориентированного программирования
Объектный тип в Object Pascal называется class. Описание типа
class напоминает описание типа record (запись), но тип class кроме
описания полей данных содержит ещё методы (процедуры и функции).
Объект в Object Pascal это конкретный экземпляр класса , который
понимается как динамическая структура . Переменная-объект содержит
не данные, а ссылку на данные объекта.
В основе объектно-ориентированного программирования лежат три
основных принципа : инкапсуляция , наследование и полиморфизм .
Инкапсуляцией называется объединение в классе данных и под -
программ для их обработки. Данные содержатся в полях класса , а
процедуры и функции называются методами. В соответствии с прави-
лами объектно-ориентированного программирования прямой доступ к
полям нежелателен . В связи с этим в Object Pascal предусмотрены
специальные конструкции, называемые свойствами, которые осуществ-
ляют чтение или запись в поля при помощи вызова соответствующих
методов. Общепринятым является правило давать названия классам,
начинающиеся с буквы T. Например:
type tPerson = class;
Наследование означает , что класс может наследовать компонен -
ты другого класса . Создать новый класс от некоторого класса -
родителя можно следующим образом :
type tStudent = class(tPerson);
Принцип наследования заключается в том, что порождённый
класс-потомок автоматически наследует поля , методы и свойства сво-
его родителя , и в тоже время может дополнять их новыми.
В Object Pascal все классы являются потомками класса tObject.
Этот класс не включает в себя полей и свойств, зато его методы по-
зволяют создавать, поддерживать работу и удалять объекты. Если
программист хочет создать класс, являющийся непосредственным по-
томком класса tObject, то имя класса -родителя в этом случае можно
не указывать, т.е. следующие строки являются эквивалентными:
type tNewClass = class(tObject);
type tNewClass = class;
Использование принципа наследования в Delphi привело к созда-
нию разветвлённого дерева классов. В верхней части этого дерева на-
ходятся так называемые абстрактные классы , для которых нельзя соз-
дать полноценные работающие объекты. Но вместе с тем абстрактные
классы являются родоначальниками больших групп классов, для кото-
рых уже создаются реальные объекты.
Полиморфизм позволяет использовать одинаковые имена для ме-
тодов, входящих в различные классы . Принцип полиморфизма обеспе-
                                            3
                          2.1 К лассы и объ екты

                                  О снов ны е пр и нци пы
                  объе кт но-ор и е нт и р ов анногопр огр ам м и р ов ани я
       Об ъект н ый т ип в Object Pascal н а зыва ет ся class. Описа н ие типа
class       н а пом ин а ет описа н ие типа record (за пись), н о тип class кром е
описа н ия полей д а н н ых сод ерж ит ещё м ет од ы (процед у ры и ф у н кции).
Об ъект в Object Pascal э           т о кон крет н ый э кзем пля р кла сса , который
пон им а ет ся ка к д ин а м ическа я стру кт у ра . Перем ен н а я -об ъект сод ерж ит
н е д а н н ые, а ссылку н а д а н н ые об ъект а .
       В осн ове об ъект н о-ориен т ирова н н ого програ м м ирова н ия леж а т три
осн овн ых прин ципа : ин ка псу ля ция , н а след ова н ие и полим орф изм .
       И нкапсуля цией н а зыва ет ся об ъед ин ен ие в кла ссе д а н н ых и под -
програ м м д ля их об ра б от ки. Д а н н ые сод ерж а тся в поля х кла сса , а
процед у ры и ф у н кции н а зыва ю т ся м ет од а м и. В соот ветст вии с пра ви-
ла м и об ъект н о-ориен т ирова н н ого програ м м ирова н ия пря м ой д ост у п к
поля м н еж ела телен . В свя зи с э           т им в Object Pascal пред у см от рен ы
специа льн ые кон стру кции, н а зыва ем ые свойст ва м и, которые осу ществ-
ля ю т чт ен ие или за пись в поля при пом ощи вызова соот вет ству ю щих
м ет од ов. Об щеприн я тым я вля ет ся пра вило д а ва т ь н а зва н ия кла сса м ,
н а чин а ю щиеся с б у квы T. Н а прим ер:
                                      type tPerson = class;
       Н аследование озн а ча ет, что кла сс м ож ет н а след ова т ь ком пон ен -
т ы д ру гого кла сса . Созд а т ь н овый кла сс от н екоторого кла сса -
род ит еля м ож н о след у ю щим об ра зом :
                                type tStudent = class(tPerson);
       Прин цип н а след ова н ия за клю ча ется в том , чт о порож д ён н ый
кла сс-потом ок а вт ом а т ически н а след у ет поля , м ет од ы и свойст ва сво-
его род ит еля , и в т ож е врем я м ож ет д ополн я т ь их н овым и.
       В Object Pascal все кла ссы я вля ю т ся потом ка м и кла сса tObject.
Э тот кла сс н е вклю ча ет в себ я полей и свойст в, за т о его м етод ы по-
зволя ю т созд а ва т ь, под д ерж ива т ь ра б от у и у д а ля т ь об ъект ы. Е сли
програ м м ист хочет созд а т ь кла сс, я вля ю щийся н епосред ст вен н ым по-
т ом ком кла сса tObject, т о им я кла сса -род ит еля в э         том слу ча е м ож н о
н е у ка зыва т ь, т .е. след у ю щие строки я вля ю т ся э  квива лен т н ым и:
                               type tNewClass = class(tObject);
                                    type tNewClass = class;
       И спользова н ие прин ципа н а след ова н ия в Delphi привело к созд а -
н ию ра звет влён н ого д ерева кла ссов. В верхн ей ча сти э           т ого д ерева н а -
ход я тся та к н а зыва ем ые а б стра кт н ые кла ссы, д ля кот орых н ельзя соз-
д а т ь полн оцен н ые ра б от а ю щие об ъект ы. Н о вм ест е с т ем а б стра кт н ые
кла ссы я вля ю т ся род он а ча льн ика м и б ольш их гру пп кла ссов, д ля кот о-
рых у ж е созд а ю т ся реа льн ые об ъект ы.
       П олиморф изм позволя ет использова ть од ин а ковые им ен а д ля м е-
т од ов, вход я щих в ра зличн ые кла ссы. Прин цип полим орф изм а об еспе-