- •1. Ссылочный тип данных.
- •2. Оператор new.
- •3. Сортировка в дп.
- •4. Файлы с прям. Доступом
- •5. Нетипизированные файлы
- •6. Особенности работы с типами в tp. Явные преобразования типов
- •7. Эквивалентность типов.
- •8. Совместимость типов.
- •9. Настройка перменных.
- •10. Типизированные константы.
- •11. Работа с внешними процедурами. Модули.
- •12. Объектовый тип. Основные понятия
- •13. Наследование и переопределение в объектовых типах
- •14. Виртуальные методы в объектах
- •15. Конструкторы и деструкторы
- •16. Скрытые поля и методы
- •17. Раздел files основного меню turbo-паскаль 7.0
- •18. Директивы компилятора тр.
- •19. Библиотека crt turbo-паскаля.
- •20. Библиотека dos turbo-паскаля.
- •21. Библиотека system turbo-паскаля.
- •22. Раздел edit основного меню turbo-паскаль 7.0.
- •23. Раздел run основного меню turbo-паскаль 7.0.
- •24. Классификация типов данных.
- •25. Перечислимые типы данных.
- •26.Ограниченные типы данных.
- •27.Регулярный тип данных (массив)
- •28. Многомерные массивы
- •29.Комбинированные типы данных (запись).
- •30.Оператор with.
- •31. Записи с вариантами.
- •32. Множественные типы данных
- •33. Операции над данными множественного типа.
- •34. Файловый тип данных
- •35. Текстовые файлы
- •36. Процедуры
- •37. Функции.
- •38. Параметры процедур и функций. Формальные и фактические параметры
- •39. Локальные и глобальные объекты в процедурах и ф-циях.
- •40. Структурн. Предст. Осн. Констр-ий языка
- •41. Перевод вещественных чисел из 10-ичной системы в 2-ную.
- •42. Перевод вещественных чисел из двоичной сс в 10-чную.
- •43. Перевод чисел из двоичной системы в восьмеричнуюа из 8-й в 16-ю.
- •44. Перевод чисел из 8-ричной и 16-ричной системы счисления в десятичную.
- •45. Внутр. Представление двоичных чисел с фиксир. Точкой
- •46. Внутр. Представление числа с плавающей точкой
- •47. Сортировка методом «часового»
- •49. Алфавит языка, имена, числа, строки
- •50. Структура программы.
- •51. Тип integer.
- •52. Тип real.
- •53. Тип boolean и char.
- •54. Тип char.
- •55. Описат. Часть программного блока.
- •56. Процедуры ввода-вывода.
- •57. Оператор присваивания
- •58. Условный оператор.
- •59. Оператор варианта (case of).
- •60. Цикл с параметром for (с перечислением)
- •61. Оператор цикла с предусловием
- •62. Оператор цикла с постусловием.
13. Наследование и переопределение в объектовых типах
НАСЛЕДОВАНИЕ есть свойство объектов порождать своих потомков. Объект потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.
ПЕРЕОПРЕДЕЛЕНИЕ МЕТОДА – возможность определить новые методы со старыми именами; метод подкласса имеет приоритет по сравнению с методом надкласса.
14. Виртуальные методы в объектах
Концепция ВИРТУАЛЬНЫХ МЕТОДОВ, поддерживаемая этими и другими современными языками, появилась как средство обеспечить выполнение нужных методов при использовании полиморфных переменных, то есть, по сути, как попытка расширить возможности вызова методов для реализации части функциональности, обеспечиваемой механизмом обработки сообщений. Для того, чтобы определить виртуальный метод, необходимо указать после его заголовка в объектовом типе служебное слово virtual. При этом во всех потомках объектового типа одноименные (переопределяющие) методы должны также специфицироваться как виртуальные; кроме того, все они должны иметь точно такой же набор формальных параметров, что и самый первый виртуальный метод. Возвращаясь к нашему примеру, можно следующим образом определить типы Point и circle (несущественные для рассмотрения поля и методы заменены многоточиями):
type
Point = object
constructor Create ( a,b:integer ); procedure SwitchOn; virtual;
procedure SwitchOff; virtual;
procedure Move ( dx,dy:integer );
Circle = object (Point)
constructor Create ( a,b,R:integer ); procedure SwitchOn; virtual; procedure SwitchOff; virtual-end;
15. Конструкторы и деструкторы
Конструкторы предназначены для создания конкретного экземпляра объекта, ведь объект это тип данных, т. е. "шаблон", по которому можно создать сколько угодно рабочих экземпляров данных объектного типа (подобных TGraphObj, например). Зарезервированное слово constructor, используется в заголовке конструктора вместо procedure. Если в объекте нет
виртуальных методов, в нем может не быть ни одноrо конструктора, наоборот, если хотя бы один метод описан как виртуальный (с последующим словом virtual), в состав объекта должен входить хотя бы один конструктор и обращение к конструктору должно предшествовать обращению к любому виртуальному методу.
Описание:
type
TGraphObj = object
_end;
_Constructor TGraphObj.Init;
begin
х = аХ;
_У := аУ;
Color = aColor
end;
Процедуру, разрушающую экземпляр объекта, принято называть ДЕСТРУКТОРОМ. Он не связан с какими-то специфичными действиями: для компилятора слова destructor и procedure синонимы.
16. Скрытые поля и методы
Часть полей и методов объектовых типов можно объявить как скрытые. Смысл введения скрытых компонент объектов заключается в ограничении области видимости идентификаторов этих компонент. Для этого используется служебное слово private, которое используется по следующей схеме:
type
ObjectType - object
{Обычные поля и методы}
private
{Скрытые поля и методы}
Идентификаторы полей и методов, объявленных как скрытые, считаются известными (доступными, видимыми) ТОЛЬКО в пределах программы или модуля, в которой (в котором) содержится описание данного объектового типа. Вне модуля, содержащего такое описание (например, в программе, использующей этот модуль), скрытые компоненты объектового типа неизвестны и недоступны, в то время как сам объектовый тип и его остальные компоненты считаются известными по обычным правилам.
Введение понятия скрытых компонент объектовых типов придает объектам дополнительное сходство с модулями; в этом смысле список скрытых компонент аналогичен разделу реализации модуля. Это позволяет изолировать технические подробности реализации объектов от программ-потребителей, что способствует большей независимости программных единиц и служит добавочным средством контроля за использованием объектов.