- •Назовите структурные операторы, применяемые в Object Pascal, и их особенности
- •Использовании подпрограмм в Object Pascal и их разновидности
- •Различных механизмах передачи параметров в под программы Delphi
- •Перечислите области видимости элементов классов, применяемые в Object Pascal
- •Расскажите о правилах описания методов в классах и их особенностях
- •Объясните понятия статических, перегружаемых и абстрактных методов
- •Опишите правила наследования классов.
- •Поясните сущность полиморфизма
- •Расскажите о возможностях определения типа объекта во время выполнения программы и приведение типов объектов
- •Опишите жизненный цикл экземпляра класса, расскажите о конструкторе экземпляров класса
- •Расскажите о деструкторе класса экземпляров класса
- •Деструкторе класса экземпляров класса
- •Описание и использование специальных свойств| объекта property
- •Опишите механизм сообщений в ос Windows
- •Расскажите о методах обработки исключительных ситуаций
- •Расскажите о классах, предназначенных для хранения информации в виде списков
- •Основные свойства и методы классов-списков
- •Опишите возможности и особенности хранения строковых массивов в классах-наследниках tStrings
- •Поясните понятие потока и объясните преимущество использования потоков по отношению к традиционным методам чтения/записи данных
- •Расскажите о строчных потоках, построенных на основе оперативной памяти
- •Поясните понятие графического контекста Windows
- •Форматы графических файлов, поддерживаемых Delphi
- •Расскажите о файлах, соответствующих каждой форме приложения в Delphi
- •Опишите структуру приложения на Delphi, расскажите о видах интерфейса приложения с точки зрения расположения его окон на экране
- •Опишите процесс построения приложения в Delphi
- •Опишите основные инструменты среды разработчика Delphi
- •Опишите жизненный цикл экземпляров классов
- •Расскажите о механизме интерфейсов в Delphi
- •Расскажите об интерфейсах (Interface и (Unknown))
- •Расскажите о правилах именования компонентов и автоматическое именование их Средой разработчика
- •Поясните разницу между свойством принадлежности компонентов и свойством визуальной принадлежности
- •Расскажите о взаимосвязях компонентовчерез механизм уведомлений
- •Расскажите о визуальных компонентах-оболочкахи легковесных компонентах
- •Расскажите об организации структуры элементов управления в окне
- •Расскажите об методах расположения визуальных компонентов на экране и управления их размерами
- •Расскажите о свойствах видимости и доступности визуальных компонентов
- •Расскажите о компонентах, предназначенных для вывода на экран текстовой информации
- •Расскажите о компонентах, предназначенных для ввода текстовой информации
- •При помощи каких компонентов можно обеспечить возможность ввода пользователем числовых значений?
- •При помощи каких компонентов можно вывести на экран какое-либо графическое изображение?
- •Расскажите о возможностях элементов управления — кнопок
- •Приведите правила создания компонентов во время выполнения программы
- •Поясните понятие диалогового компонента
- •Поясните разницу между модальными и немодальными диалогами
- •Поясните понятие формы и основы использования форм в Delphi
- •Опишите жизненный цикл формы
- •Расскажите об основах организации многооконных приложений в Delphi
- •Поясните понятие фрейма
- •Расскажите о депозитарии форм
- •Опишите основные методы, применяемые в Delphi для управления окружением программы
- •Расскажите про использование dll в программных продуктах
- •Расскажите про многопоточные приложения
- •Расскажите об особенностях модели сом
- •Расскажите про модель сообщений компонентов
Опишите правила наследования классов.
Ответ: Наследование — это построение нового класса на основе ранее описанного. Полученные в результате наследования классы называются классами-наследниками (или дочерними классами), а классы, на основе которых они построены — классами-родителями (или родительскими классами).
При наследовании дочерний класс приобретает все свойства и методы родительского класса и имеет доступ к любому члену родительского класса, за исключением описанных с областью видимости private.
При описании дочернего класса с использованием наследования имя родительского класса указывается в скобках после ключевого слова class в заголовке интерфейсной части описываемого класса.
Класс-наследник может быть описан на основе любого другого класса, вне зависимости от того, является ли родительский класс в свою очередь дочерним. Все классы в Delphi являются наследниками класса TObject, даже если это явно не указывается.
Поясните сущность полиморфизма
Ответ: Переменной-ссылке на экземпляр класса можно присвоить реальную ссылку на экземпляр другого класса, если они состоят в отношении родитель-наследник. Так как при наследовании классов друг от друга количество свойств и методов не уменьшается, то присваиваемый объект может быть экземпляром класса, находящимся ниже по иерархии, чем тот, который был указан при описании переменной.
Как и все объектно-ориентированные языки программирования, Delphi поддерживает свойство полиморфизма объектов при наследовании, которое состоит в правильном выборе виртуального метода, вызываемого из переменной-ссылки на объект. Вне зависимости от того, на экземпляр какого класса указывает переменная-ссылка в соответствии со своим описанием, будет вызван тот виртуальный метод, который описан в классе, на который указывает реальная ссылка.
-.
Приведите правила переопределения методов
Ответ: Для переопределения метода, реализованного в объекте-родителе, следует:
указать его заголовок в описании дочернего объекта без изменения имени, списка параметров и возвращаемого значения (если метод является функцией);
указать после заголовка метода ключевое слово override;
реализовать метод в описательной части объекта по обычным правилам. Если
ключевое слово override не указано, то метод не переопределяется. Чтобы метод мог быть переопределен в дочерних классах, он должен быть помечен ключевыми словами virtual или dynamic в интерфейсной части класса-родителя.
Разницу между использованием ключевых слов virtual и dynamic
Ответ: Ключевое слово virtual указывает на то, что метод должен быть занесен в так называемую таблицу виртуальных методов (ТВМ), а ключевое слово dynamic — на то, что метод должен быть найден по имени в дереве родительских объектов. Разница между использованием virtual или dynamic заключается в направлении оптимизации компилятором вызовов переопределяемых методов. Методы, помеченные virtual, оптимизируются по скорости, а dynamic-методы по размеру программного кода.
В большинстве случаев рекомендуется использование виртуальных методов, а использование динамических методов целесообразно при высоких степенях вложенности связей родитель-наследник.