
- •Динамическая память и указатели. Типы указателей. Описание указателей.
- •Операции над указателями. Выделение динамической памяти для типизированных и нетипизированных указателей. Проблема утечки памяти.
- •Стеки и очереди.
- •Модули.
- •Классы, объекты. Объявление класса, принципы ооп.
- •Инкапсуляция и разграничение доступа к членам класса.
- •Методы (виды методов), конструктор и деструктор.
- •Перекрытие методов, перекрытие конструктора, inherited
- •Поля, Свойства. События
- •Полиморфизм is, as.
- •Дерево классов delphi. Класс tObject. Класс tPersistent. Класс tСomponent.
- •Класс tСontrol.
- •Свойства и методы для обеспечения отношения родительский-дочерний
- •Свойства позиционирования и выравнивания
- •Свойства, определяющие внешний вид элементов управления. Property Color Cursor:Tcursor; Enabled:Boolean; Font, Hint, ShowHint
- •События при нажатии мышью на левую кнопку. Общие события, возникающие при манипулировании мышью.
- •События, предназначенные для поддержки перетаскивания.
- •Свойства и методы, поддерживающие связь родительский-дочерний.
- •События клавиатуры TwinControl. События активизации оконного элемента и потери фокуса.
- •Класс tGraphicControl. Метка Tlabel. Компонент Timer.
- •Interval: cardinal; - интервал в милисекундах после которого начинается событие OnTimer.
- •Класс tCustomEdit. Строка ввода Edit.
- •Класс tStrings. Текстовый редактор Memo.
- •Кнопки.Button, BitBtn, SpeedButton
- •Список ListBox.
- •Комбинированная строка ввода ComboBox.
- •Items:tString;-содержит список названий переключателей.
- •Классы и компоненты, предназначенные для создания изображений. Класс tCanvas. Класс tFont. Класс tPen. Класс Tbrush.
- •Компонент Image. Компонент Shape. Компонент PaintBox.
- •Диалоговые окна. OpenDialog SaveDialog
- •Этапы развития технологии программирования.
- •Первый этап - «стихийное» программирование (50-60-е годы).
- •Второй этап - структурный подход к программированию
- •Третий этап -объектный подход к программированию(с середины 80-х до конца 90-х годов XX )
- •Четвертый этап – компонентный подход и case-технологии (с середины 90-х годов до нашего времени).
- •Проблемы разработки сложных программных систем.
- •Блочно-иерархический подход к созданию сложных систем.
- •Жизненный цикл по и этапы его разработки. Гост 19.102-77 «Стадии разработки»
- •Постановка задачи. Анализ требований и определение спецификаций. Проектирование. Реализация. Сопровождение.
- •Эволюция моделей жизненного цикла по.
- •Жизненный цикл по при использовании case-технологий. Технология rad
- •Оценка качества процессов создания по.
- •5. Оптимизирующий уровень (optimizing level)
- •Понятие технологичности программного обеспечения. Нисходящая и восходящая разработка по
- •Последовательность проектирования и реализации (Иерархический , Операционный , Комбинированный)
- •Модульное программирование. Модули и их свойства. Сцепление модулей. Связность модулей.
- •Предпроектные исследования предметной области
- •Разработка технического задания. Последовательность разработки тз.
- •Принципиальные решения начальных этапов проектирования: Выбор архитектуры программного обеспечения. Выбор типа пользовательского интерфейса. Выбор подхода к разработке.
- •Стадии тестирования. Принципы тестирования. Формирование тестовых наборов ст иФн.
- •Ручной контроль по: инспекция исходного текста, сквозные просмотры, проверка за столом.
- •Структурное тестирование.
- •Функциональное тестирование.
- •Тестирования модулей и комплексное тестирование.
- •Критерии завершения тестирования и отладки. Оценочное тестирование
Классы, объекты. Объявление класса, принципы ооп.
Классы – это типы специального вида, которые содержат поля, методы и свойства.
Классы, как и любые другие типы, служат образцами для создания конкретных экземпляров.
Конкретные экземпляры класса называются объектами.
Объявление класса
Type
TmyCl=class(Tobject)
Fint:integer;
Fstr:string;
Function Func1(a:real):integer;
Procedure Proc1;
End;
Var
MyClass:TmyCl;
Function TmyCl.Func1(a:real):integer;
Begin result:=a* Fint ; end;
Procedure TmyCl.Proc1;
Begin …; end;
Begin
MyClass:=TmyCl.create;
MyClass.Fint:=10;
MyClass. Proc1;
MyClass.Free;
End.
В основе классовой борьбы лежат три фундаментальных принципа:
инкапсуляция
наследование
- полиморфизм
Инкапсуляция – это объединение в одно целое трех сущностей: полей, методов и свойств.
Поля методы и свойства называются членами классов.
Поля – это данные.
Методы – это процедуры, обрабатывающие данные.
Свойства – это механизм доступа к данным
Инкапсуляция позволяет изолировать класс от остальных частей программы, сделать его самодостаточным для решения конкретной задачи.
Наследование. Любой класс может быть порожден от другого класса. Порожденный класс автоматически наследует все члены родителя, но может и пополнять их.
Все классы OBJECT PASCAL являются потомками класса TОbject. Наследование приводит к тому, что создается дерево классов, разрастающееся по мере удаления от потомка.
Программисты создавая новые классы, на основе старых не вникают в подробности программного кода старых. Значительно возрастает преемственность кода.
Полиморфизм – это возможность в классах потомках переопределять (перекрывать) методы родителей.
Поведенческие свойства класса определяются набором методов входящих в класс, изменяя тот или иной метод в потомке, мы изменяем в нем свойства родителя, хотя имя метода остается прежним.
Инкапсуляция и разграничение доступа к членам класса.
Инкапсуляция – это объединение в одно целое трех сущностей: полей, методов и свойств.
Поля методы и свойства называются членами классов.
Поля – это данные.
Методы – это процедуры, обрабатывающие данные.
Свойства – это механизм доступа к данным
Инкапсуляция позволяет изолировать класс от остальных частей программы, сделать его самодостаточным для решения конкретной задачи.
Разграничение доступа
Инкапсуляция предполагает разграничение доступа разработчиков разного уровня к различным членам класса.(если ты разрабатываешь класс, то тебе доступны все члены класса, если ты используешь класс, то только те, которые определят поведение класса)
Потому что:
1. Пользователи класса не должны видеть подробности, которыми оперируют разработчики.
2. Прямой доступ к полям хотя и возможен, но не всегда желателен, т.к. бесконтрольность может привести к ошибкам
Часто поля делают узко доступными, а свойства (именно они проводят контроль корректности) широко.
В Delphi есть четыре модификатора разграничения доступа:
public
published
protected
private
Модификатором public объявляют (помечают ) члены класса видимые везде.
А именно, в любой программе и в любом модуле, которые имеют доступ к нашему модулю, (т.е. где наш модуль объявлен в разделе USES).
Модификатором published объявляют члены класса видимые везде, но более того, свойства помещенные в эту секцию видимы еще и в инспекторе объектов.
Секция, не имеющая модификатора доступа, по умолчанию считается published
Модификатором protected объявляют члены класса доступные методам самого класса и их потомкам.
Модификатором private объявляют члены класса видимые только в модуле, где описан класс, т.е. это локальные описания.
Любая секция может объявляться сколько угодно раз, порядок следования секций произвольный. Внутри каждой секции объявляются сначала поля затем методы и свойства.