- •1.Понятие жизненного цикла программного обеспечения (по). Этапы разработки по.
- •Сравнение стратегий конструирования по.
- •4. Спиральная модель жизненного цикла разработки программного обеспечения б. Боэма.
- •5.Основные приемы экстремального программирования (xp).
- •1.Короткий цикл обратной связи:
- •7. Структура оконного приложения в среде Delphi.
- •8.Модули. Структура модуля. Использование модулей в приложении
- •9.Основные типы данных языка Delphi
- •10. Структурированные типы данных. Записи. Обращение к полям записей. Оператор with. Тип "запись" (record)
- •11. Структурированные типы данных. Записи. Вариантная часть записей.
- •Описание и использование подпрограмм в языке Паскаль. Формальные и фактические параметры. Параметры-значения и параметры-переменные.
- •Описание и вызов процедур и функций
- •13. Библиотека визуальных компонентов Delphi. Назначение vcl
- •Структура vcl
- •14. Основные события Delphi. Методы обработки событий.
- •15. Объектно-ориентированный подход при разработке программы. Основные принципы объектно-ориентированного программирования.
- •16. Определение класса и объекта.
- •Примеры Классов: Класс фигур:
- •17. Атрибуты доступа к элементам класса.
- •Пример: пример “атрибуты доступа” (лекция №__)
- •Структура проекта
- •Описание классов
- •Модуль Unit1
- •Модуль Unit2
- •18. Методы как составляющие элементы класса. Конструкторы и деструкторы.
- •Пример: пример № 1. “точка на прямой”
- •19. Методы как составляющие элементы класса. Модификаторы и селекторы пример № 3. Класс “товар”
- •20. Принцип инкапсуляции. (Забавная статья, но вроде понятно)
- •21. Принцип наследования.
- •Типы наследования
- •Простое наследование
- •Множественное наследование
- •Реализация наследования на примере языка Delphi.
- •Create; begin Inherited; // Всегда вызывается в начале конструктора ... End; Иерархия стандартных классов Delphi
- •Совместимость типов для классов в иерархии наследования. Преобразование и приведение типов.
- •Совместимость объектов различных классов
- •Контроль и преобразование типов
- •Обработка исключительных ситуаций. Стандартные классы исключений на примере языка Delphi.
- •Блок try … except
- •Блок try … finally
- •Описание и обработка пользовательских исключений на примере языка Delphi.
Модуль Unit1
UNIT UNIT1;
INTERFACE
Type
{Описание класса One}
One = class
public // Открытый
a:byte;
protected // Защищенный
b:real;
private // Закрытый
c:char;
end;
{Описание класса Two - наследника One}
Two = class (One)
public // Открытый
d:string;
function e():Integer;
end;
IMPLEMENTATION
{ Two }
function Two.e: Integer;
begin
result:=10*a;
end;
END.
Модуль Unit2
UNIT UNIT2;
INTERFACE
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, UNIT1;
Type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
{Описание класса Three - класс One объявлен в ДРУГОМ модуле}
Three = class (One)
private // Закрытый
g:Word;
public // Открытый
procedure h (var ss:string);
end;
var
Form1: TForm1;
IMPLEMENTATION
{$R *.dfm}
{Объявление переменных. В текущем модуле объявлен только класс Three, классы One, Two объявлены в модуле Unit1}
var
O: One;
Tw: Two;
Tr: Three;
{ Three }
procedure Three.h (var SS:string);
begin
ss:='Работа процедуры THREE.H'
end;
{Внешняя функция, обращающаяся к объекту}
function getResult:Real;
begin
result:=Tr.b; // Прямое обращение к полю b класса Tr
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
Memo1.lines.Add('Обращения к объекту O класса One');
O.a:=33;
Memo1.lines.Add(' O.A: '+IntToStr(o.a));
//O.b:=1.2; {ОШИБКА - поле недоступно}
//O.c:='O'; {ОШИБКА - поле скрыто}
Memo1.lines.Add('>Недоступны O.b и O.c');
Memo1.lines.Add('');
Memo1.lines.Add('Обращения к объекту TW класса TWO');
TW.a:=44; // Поле a наследуется из класса One
Memo1.lines.Add('TW.A: '+IntToStr(Tw.a));
//tw.b:=44; {ОШИБКА - поле недоступно}
//tw.c:='Д'; {ОШИБКА - поле скрыто}
tw.d:='Строка в объекте TW';
Memo1.lines.Add('TW.D: '+Tw.d);
Memo1.lines.Add('TW.E (вызов функции 10*a):' +IntToStr(Tw.e));
Memo1.lines.Add('>Недоступны TW.B и TW.C');
Memo1.lines.Add('');
Memo1.lines.Add('Обращения к объекту TR класса THREE');
TR.a:=55;
Memo1.lines.Add('TR.A: '+IntToStr(TR.a));
TR.b:=55.55; {поле доступно: определение класса Three - в текущем модуле}
Memo1.lines.Add('TR.B: '+FloatToStr(TR.B));
//TR.c:='Д'; {ОШИБКА - поле скрыто}
TR.g:=66; // Хотя поле g скрыто, но класс описан в текущем модуле
Memo1.lines.Add('TR.G: '+IntToStr(TR.G));
TR.H(s);
Memo1.lines.Add('TR.H:'+s);
Memo1.lines.Add('>Недоступно TR.C');
end;
INITIALIZATION
{Объекты o, tw, tr создаются при запуске приложения}
O:=One.create;
TW:=Two.Create;
TR:=Three.Create;
FINALIZATION
{Объекты o, tw, tr удаляются при завершении работы приложения}
O.Free;
TW.Free;
TR.Free;
END.