Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Private

Begin

If notAloneItem(sName, Salary, pNew) then

Begin

Var

Begin

If notAloneItem(sName, Salary, pNew) then

Begin

Var

Else

End

Begin

Begin

...

Begin

...

Var

Var

Type

pPersonType = ^ PersonType;

 

PersonType = record

sName: string [40];

Salary: double;

pNext: pPersonType;

end;

pHead, pTail, pCurr: pPersonType;

 


function CompareItems(pCurr1,pCurr2: pPersonType): integer;

end;

 


function AloneItem(sName: string; Salary: double;

var pNew: pPersonType): boolean;

New(pNew);

 

if pNew = Nil then Halt;

 

pNew ^. sName:= sName;

pNew ^. Salary:= Salary;

pNew ^. pNext:= Nil;

 

if pHead=Nil then

pHead:= pNew; pTail:= pNew; AloneItem:= true;

AloneItem:= false;

end;

 

procedure AppendItem(sName: string; Salary: double);

pNew: pPersonType;

pTail ^. pNext:= pNew;

pTail:= pNew;

end;

end;

 


procedure PrependItem(sName: string; Salary: double);

pNew: pPersonType;

pNew ^. pNext:= pHead;

pHead:= pNew;

end;

end;

 


Объектно-ориентированное программирование (ООП)

 

Понятие класса – дополнение к понятию типа.

 

Тип [обычной] переменной определяет множество значений, которые она способна принимать, и множество операций, которые над ней можно производить.

 

Класс [объектной] переменной определяет и множество значений, которые она способна принимать, и множество операций, которые над ней можно производить, и множество операций, которые она сама над собой способна производить.

 


Три принципа ООП:

 

1. Инкапсуляция

2. Наследование

3. Полиморфизм

 

Инкапсуляция – соединение в единой структуре данных и программных кодов (т.н. методов), предназначенных для обработки именно этих данных.

Наследование – возможность построения нового класса на основе существующего (т.н. базового, или родительского) класса с дополнением и/или переопределением данных и методов. Наследование есть механизм передачи данных и методов родительского класса в дочерний класс.

Полиморфизм – возможность обращения по одному имени к разным методам.

 

Объектом, или объектной переменной принято называть конкретный экземпляр переменной заданного класса.

По сути (но не по синтаксису), объектная переменная есть указатель на первый байт области памяти, выделенной под поля объекта. Эта область памяти предоставляется объекту тогда, когда он «начинает жить», и высвобождается тогда, когда он свою жизнь завершает.

Вместе с «рождением» первого экземпляра объекта заданного класса в память загружается и его инкапсулированные программные коды. Второй и последующие экземпляры, занимая под свои поля новые области памяти, пользуются уже загруженным кодом первого экземпляра.

 


Три группы атрибутов объекта:

1. Методы

2. Свойства

3. События

 

Методы – процедуры и функции, описываемые при описании класса, предназначенные для приема объектом данных извне, изменения данных внутри объекта (модификации полей), подачи данных от объекта внешним «потребителям».

Свойства (для пользователя объекта) – параметры (числовые, символьные, строковые и прочих типов), характеризующие состояние объекта в данный момент. Обращение к свойствам объекта внешне выглядит как обращение к полям переменной типа «запись».

Свойства (для программиста класса) – процедуры и функции, назначение которых совпадает с назначением методов. В среде программистов не утихают споры о праве свойств на существование.

События – это то, что с объектом «может произойти», и на что можно предусмотреть реакцию кода класса.


Объявление класса

 

<Имя класса> = class (<Имя базового класса>)

<Объявление закрытых полей и методов>

// Все, что объявлено здесь, может быть использовано только в данном модуле

<== предыдущая лекция | следующая лекция ==>
Линейный однонаправленный список. Динамические структуры данных | 
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 298; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.