MIME-Version: 1.0 Content-Location: file:///C:/EC2C4CD2/2.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii"
2. Три
основных
принципа ОО
=
55;:
наследованl=
0;е,
инкапсуляцl=
0;я,
полиморфизl=
4;
В объектно-ор = 80;ентированн= 1086;м программирl= 6;вании объекты объединены = 74; классы. Класс – это проект, план строения конкретных объектов. Класс определяет, какие у данных объе = 82;тов будут переменные состояния, и как они буду= 090; изменяться, какие будут методы и как они будут реализовывk= 2;ться. Класс немат = 77;риален, он не соответствm= 1;ет каким-то данным. В классе описано, какие переменные = 80; с какими зна= 095;ениями могут быть у объекта. Мог= 091;т быть, а не есть в данный момент. Ведь у разных объектов, от= 085;осящихся к этому классу, значения этих переме = 85;ных в данный момент, возможно, различны.
Объект же, наоборот, материален. Он занимает место в памяти компьютера, все его переменные имеют в каждый момент вполне определеннm= 9;е значения. Им= 077;нно для конкретных объектов вызываются = 84;етоды, хотя сами методы описаны в классе, к кот= 1086;рому принадлежиm= 0; данный объект.
Для этого служи = 90; механизм нас= ;ледования – один из трех основных принципов объектно-ор = 80;ентированн= 1086;го программирl= 6;вания.
Наследова= 1085;ие дает огромные преимущестk= 4;а и значительнl= 6; облегчает программирl= 6;вание. Оно позволяет н = 77; только экономить время при создании новых классов, но и дает возмож = 85;ость неограничеl= 5;ного расширения = 80; совершенстk= 4;ования уже существ = 91;ющих классов. Можно прида = 90;ь новые функции классу, даже не зная дета= 083;ей реализации самого объекта класса.
Некоторые свойства и методы доступны внешним объектам, а некоторые целесообраk= 9;но спрятать дл= 03; внутреннегl= 6; пользованиn= 3;.
Этот принцип сокрытия – второй прин = 94;ип объектно-ор = 80;ентированн= 1086;го программирl= 6;вания, называемый инкап = 89;уляцией.
Одни переменные = 80; методы, определяемm= 9;е в разделе Ин= ;терфейс, доступны дл= 03; чтения, изменения и вызова, назы= 074;аются опубl= 3;икованными, а другие, определяемm= 9;е в разделе Ре= ;ализация, служат исключителn= 0;но нуждам самого объекта и не= 076;оступны извне, они называются прива = 90;ными.
При наследованl= 0;и все параметры и методы, опис= 072;нные в родительскl= 6;м классе, переходят б = 77;з изменений в класс-потом = 86;к. Но не всегда = 1090;ребуется такое буквальное копированиk= 7;. Иногда просто необходимо переопредеl= 3;ить уже существующl= 0;й метод или параметр. Дл= 103; того чтобы при вызове одинаковогl= 6; метода различные потомки вел = 80; себя по-разному, требуется замещ = 77;ние метода, описанного = 74; классе-пред = 82;е.
Замещать можно и переменные. = 042; подобном ра = 79;ноликом поведении и заключаетсn= 3; третий принцип объектно-ор = 80;ентированн= 1086;го программирl= 6;вания – П= ;олиморфизм.
С помощью полиморфизl= 4;а потомки классов пол = 91;чают возможностn= 0; переопредеl= 3;ять действия, заложенные = 74; предках.
Например, графическиk= 7; компоненты управления = 74; Delphi все наследуют о = 90; своего предка мето = 76; Перерисовкl= 0;, но каждый из них его заме= ;щает. В результат = 77;, когда Windows решает, что пора обнови = 90;ь окно и вызывает дл= 03; них метод Пере= 1088;исовать, каждый компонент перерисовыk= 4;ается по-своему.
В Delphi все классы наследуютсn= 3; от одного предка – базового кл = 72;сса TObject. Этот класс не только да= 077;т всем своим потомкам ря = 76; нужных всем им методов, например, методы создания и уничтожениn= 3; экземпляроk= 4; класса, но и обеспечиваk= 7;т базовую совместимоl= 9;ть любых объектов. Вс= 077; компоненты = 74; Delphi – объекты. Можно созда = 74;ать новые компоненты = 74; Delphi.
События используютl= 9;я в Delphi для обеспечениn= 3; определени= 1103; программисm= 0;ом реакции на т= 077; или иные действия ил = 80; запросы со стороны ком = 87;онента.
Хотя описание обработчикl= 6;в событий, по сути, являет= 089;я всего лишь полиморфныl= 4; замещением методов, события в Delphi играют очен= 00; важную роль. Фактически вся програм = 84;а – это описание обработчикl= 6;в событий.
Программа Delphi не являетс= 03; сплошным последоватk= 7;льным выполнениеl= 4; кода, как в Turbo Pascal. Здесь прогр = 72;мма реализует некоторый код только как реакцию на события – какие-то действия пользоватеl= 3;я (нажатие кнопок, движение мы = 96;и, закрытие окон и т.п.). Когда код, описанный в обработчикk= 7;, заканчиваеm= 0;ся, программа н = 77; завершаетсn= 3;. Для завершения требуется, ч= 090;обы пользоватеl= 3;ь обычным в Windows способом за = 82;рыл главное окн = 86; приложения либо, к приме= 1088;у, нажал на сделанную кнопку, в обработчикk= 7; нажатия которой предусмотрk= 7;н вызов процедуры Close.