Какое из свойств связано с соединением полей методов и свойств в одном объекте
А. TYPE
Б. UNIT
С. PROGRAM
Д. USES
Е. LABEL
424. Какое из имен используется для задания заголовков процедур и функций? -2
А. INTERFACE
Б. LABEL
С. IMPLEMENTATION
Д. USES
Е. VAR
425. Какое из имен используется для задания текста процедур, функций, методов? -2
А. IMPLEMENTATION
Б. LABEL
С. INTERFACE
Д. VAR
Е. USES
426.Какое из имен используется для задания переменных? -1
А. VAR
Б. LABEL
С. INTERFACE
Д. IMPLEMENTATION
Е. CONST
Какая из операций используется для обозначения директивы компилятора? -2
А. {$
Б. DIV
С. MOD
Д. ^
Е. DİR
Какая из операций используется для обозначения указателя? -1
А. ^
Б. DIV
С. MOD
Д. {$
Е. PNT
Какое из названий обозначает завершение работы динамических методов объекта?
А. destructor
Б. property
С. virtual
Д. constructor
Е. destact
Какое из названий обозначает общедоступные элементы объекта? -2
А. public
Б. published
С. protected
Д. general
Е. private
Какое из названий обозначает доступные только в модуле элементы класса? -3
А. private
Б. public
С. published
Д. protected
Е. modul
Какая из процедур использует полное имя файла? -3
А. AssignFile
Б. Reset
С.FilleName
Д. Append
Е. Rewrite
Какая из процедур используется для открытия файла для чтения из него? -3
А. Reset
Б. Rewrite
С. AssignFile
Д. Append
Е.OpenRead
Какая из процедур используется только для текстовых файлов? -3
А. Append
Б. AssignFile
С. Reset
Д. Close
Е. Rewrite
Какая из процедур стирает старый файл? -2
А. Rewrite
Б. Delete
С. Reset
Д. Append
Е. AssignFile
Какая из операций обозначает получение адреса? -2
А. @
Б. +
С. ^
Д. *
Е. $
Какая из операций не используется для работы с динамической памятью?
А. *
Б. @
С. +
Д. ^
Е. $
Какая из команд описывает файловую переменную типизированного файла? -3
А. F: File of real;
Б. F: File;
С. F: TextFile;
Д. F: FileText;
Е. F: FileType;
Какая из команд описывает файловую переменную не типизированного файла? -1
А. F: File;
Б. F: File of real;
С. F: FileType;
Д. F: FileText;
Е. F: TextFile;
Какая из команд описывает файловую переменную текстового файла? -1
А. F: TextFile;
Б. F: File;
С. F: File of real;
Д. F: FileText;
Е. нет правильного ответа
Какая из команд описывает переменную, которая не является файловой? -2
А. F: FileText;
Б. F: File of real;
С. F: File;
Д. F: TextFile;
Е. F: FileType;
442. Освобождает память в определенное количество байт, начиная с определенного адреса, записанного в указателе Р …-3
А. FreeMem(var P: Pointer; Size: Word);
Б. New(var P: Pointer);
С. Dispose(var P: Pointer);
Д. GetMem(var P: Pointer; Size: Word);
Е. PutMem(var P: Pointer; Size: Word);
Какая из функций определяет конец строки? -1
А. EOLN
Б. EOF
С. RESET
Д. SEEK
Е.ENRSTR
Какая из процедур открывает файл? -1
А. RESET
Б. EOF
С. EOLN
Д. SEEK
Е.OPEN
Какая из процедур находит запись нужного номера в файле? -1
А. SEEK
Б. EOF
С. RESET
Д. EOLN
Е.FRECORD
Какой из классов Delphi работает с файлами? -2
А. TStream
Б. TList
С. TCanvas
Д. TPoint
Е. TFile
Какой из классов Delphi работает с изображением?
А. TCanvas
Б. TPicture
С. TStream
Д. TList
Е. TPoint
Какое из свойств ООП понятие «родитель»? -2
А. Наследование
Б. Инкапсуляция
С. Полиморфизм
Д. Предки
Е. Визуальность
В какой из областей класса элементы недоступны для потомков вне данного модуля? -2
А. private
Б. public
С. uses
Д. published
Е. protected
Какой из терминов обозначает события объекта? -3
А. Events
Б. Canvas
С. Caption
Д. Enabled
Е.Disabled
Какое из свойств связано с соединением полей, методов и свойств в одном объекте? -2
А. Инкапсуляция
Б. Наследование
С. Метод
Д. Полиморфизм
Е. Визуальность
Какое из названий обозначает создание объекта данного класса? -2
А. constructor
Б. property
С. overload
Д. destructor
Е. new
Динамическая структура, которая имеет две основные операции: добавление в «хвост» и извлечение из «головы» является -3
А. очередью
Б. стеком
С. списком
Д. деком
Е. файлом
Динамическая структура, которая имеет одну точку доступа к его элементам («голова»), называется -3
А. стеком
Б. очередью
С. списком
Д. деком
Е. файлом
Упорядоченная динамическая структура, каждый элемент которой содержит ссылку, связывающую его со следующим элементом, называется -3
А. списком
Б. очередью
С. стеком
Д. файлом
Е. деком
456. Динамическая процедура, которая отводит место для хранения динамической переменной P^ присваивает её адрес ссылке Р -2
А. New(var P: Pointer);
Б. Dispose(var P: Pointer);
С. GetMem(var P: Pointer; Size: Word);
Д. PutMem(var P: Pointer; Size: Word);
Е. FreeMem(var P: Pointer; Size: Word);
1. Какой из предложенных вариантов записи абстрактного класса в С ++ является правильным:
а) class A {virtual int f () = 0;} +
б) abstract class A {virtual int f () = 0;}
в) class A {virtual int f () = 0;} abstract
2. Выберите верное утверждение о деструкторе класса в С ++:
а) Деструктор принимает в качестве параметра адрес того объекта, который нужно уничтожить
б) Деструктор не содержит параметров +
в) Деструктор принимает в качестве параметра указатель this
3. Свойство, при котором объекты содержат описание атрибутов и действий одновременно:
а) Наследование
б) Полиморфизм
в) Инкапсуляция +
4. Один из принципов объектно-ориентированного программирования:
а) Инкапсуляция +
б) Ингаляция
в) Инструкция
5. Один из принципов объектно-ориентированного программирования:
а) Отдача
б) Передача
в) Наследование +
6. Один из принципов объектно-ориентированного программирования:
а) Абстракционизм
б) Полиморфизм +
в) Монорфизм
7. Метод определения объектов, при котором производные объекты наследуют свойства от своих потомков:
а) Монорфизм
б) Полиморфизм
в) Наследование +
8. Свойство объектов, при котором действие с одинаковыми именами вызывает различное поведение для различных объектов:
а) Полиморфизм +
б) Передача
в) Монорфизм
9. Данные, характеризующие состояние объекта:
а) Доли объекта
б) Части объекта
в) Атрибуты объекта +
10. Под объектами понимают:
а) Всю абстрактную сущность, заданную набором имен атрибутов и имен методов поведения
б) Некоторую абстрактную сущность, заданную набором имен атрибутов и имен методов поведения +
в) Некоторую видимую сущность, заданную набором имен атрибутов и имен методов поведения
11. Совокупность объектов, характеризующаяся общностью методов и свойств:
а) Класс +
б) Вид
в) Род
12. Изменение состояния объекта в ответ на какое-либо действие:
а) Значение
б) Событие +
в) Данность
13. Действие, которое может выполнить объект:
а) Метод +
б) Событие
в) Свойство
14. Характеристика объекта:
а) Событие
б) Данность
в) Свойство +
15. Совокупность свойств и методов:
а) Объект +
б) Свойство
в) Событие
16. Тип, соответствующий классу:
а) Объективный тип
б) Объектный тип +
в) Видимый тип
17. Компоненты, которые видны во время работы приложения, с ними напрямую может взаимодействовать пользователь, называются:
а) Абстрактными
б) Видимыми
в) Визуальными +
18. Все объекты в Delphi происходят от объекта:
а) МObject
б) TObject +
в) ВObject
19. Свойство Align отвечает за:
а) Уменьшение компонента на форме
б) Увеличение компонента на форме
в) Выравнивание компонента на форме +
20. Свойство Caption отвечает за:
а) Назначение компонента на форме
б) Название компонента на форме +
в) Вид компонента на форме
21. Укажите правильное использование оператора friend:
а) class A {public: friend int Н :: CountPass (); private: short i;} +
б) class A {public: friend int Н :: q; short i;}
в) class A {public: int A1 :: CountPass (); friend: short i;}
22. Какая функция, не будучи компонентом класса, имеет доступ к его защищенным и внутренних компонентов:
а) Статическая
б) Дружеская +
в) Шаблонная
23. Какой из перечисленных методов может быть конструктором для класса String в языке С ++:
а) void String ()
б) String * String ()
в) String (String & s) +
24. Отметьте правильное утверждение для абстрактного класса для языка С ++:
а) Абстрактный базовый класс навязывает определенный интерфейс всем производным из него классам
б) Невозможно создать объект абстрактного класса +
в) В абстрактном классе не описываются методы вообще
25. Какая из перечисленных функций не может быть конструктором:
а) String (const int a)
б) String (String & s)
в) void String () +
26. Свойство Name отвечает за:
а) Название компонента
б) Имя компонента +
в) Назначение компонента
27. Имя формы, используется для управления формой и доступа к компонентам формы:
а) Свойство формы Name +
б) Значение формы Name
в) Следствие формы Name
28. Расстояние от верхней границы формы до верхней границы экрана:
а) Значение формы Тор
б) Следствие формы Тор
в) Свойство формы Тор +
29. Этот компонент предназначен для вывода текста на поверхность формы:
а) Label +
б) Edit
в) Button
30. Компонент, представляющий собой поле ввода-редактирования строки символов:
а) Memo
б) Edit +
в) CheckBox
Поля класса являются переменными, объявленными внутри класса. Они предназначены для хранения данных во время работы экземпляра класса (объекта). Ограничений на тип полей в классе не предусмотрено. В описании класса поля должны предшествовать методам и свойствам. Обычно по-
ля используются для обеспечения выполнения операций внутри класса.
При объявлении имен полей принято к названию добавлять заглавную букву F.Например FSomeField.
Итак, поля предназначены для использования внутри класса. Однако класс должен каким-либо образом взаимодействовать с другими классами или программными элементами приложения. В подавляющем большинстве случаев класс должен выполнить с некоторыми данными определенные действия и представить результат.
Для полученияи передачи данных в классе применяются свойства. Для объявления свойств в классе используется зарезервированное слово property.
Свойства представляют собой атрибуты, которые составляют индивидуальность объекта и помогают описать его. Например, обычная кнопка в окне приложения обладает такими свойствами, как цвет, размеры, положение. Для экземпляра класса «кнопка» значения этих атрибутов задаются при по-
мощи свойств — специальных переменных, определяемых ключевым словом property. Цвет может задаваться свойством color, размеры — свойствами Width И Height и т.д.
Так как свойство обеспечивает обмен данными с внешней средой, то для доступа к его значению используются специальные методы класса. Поэтому обычно свойство определяется тремя элементами: полем и двумя методами,которые осуществляют его чтение/запись:
type
TAnObject = class(TObject)
function GetColor: TSomeType;
procedure SetColor(ANewValue: TSomeType);
property AColor: TSomeType read GetColor write SetColor;
end;
В данном примере доступ к значению свойства AColor осуществляется через вызовы методов GetColor и SetColor. Однако в обращении к этим методам в явном виде нет необходимости: достаточно написать:
AnObject.AColor := AValue;
AVariable := AnObject.AColor;
и компилятор самостоятельно оттранслирует обращение к свойству AColor в вызовы методов Getcoior или Setcoior. To есть внешне свойство выглядит в точности как обычное поле, но за всяким обращением к нему могут стоять нужные вам действия. Например, если у вас есть объект, представляющий собой квадрат на экране, и его свойству «цвет» вы присваиваете значение «белый», то произойдет немедленная перерисовка, приводящая реальный цвет на экране в соответствие со значением свойства. Выполнение этой операции осуществляется методом, который связан с установкой значения свойства «цвет».В методах, входящих в состав свойств, может осуществляться проверка устанавливаемой величины на попадание в допустимый диапазон значений и вызов других процедур, зависящих от вносимых изменений. Если же потребности в специальных процедурах чтения и/или записи нет, можно вместо имен методов применять имена полей. Рассмотрим следующую конст-
рукцию:
TPropObject = class(TObject)
FValue: TSomeType;
procedure DoSomething;
function Correct(AValue: Integer):boolean;
procedure SetValue(NewValue: Integer);
property AValue: Integer read FValue write SetValue;
end;
procedure TPropObject.SetValue(NewValue: Integer);
begin
if (NewValueOFValue) and Correct (NewValue) then FValue := NewValue;
DoSomething;
end;
В этом примере чтение значения свойства AValue означает просто чтение поля F/aiue. Зато при присвоении значения внутри SetValue вызывается сразу два метода.Если свойство должно только читаться или записываться, в его описании может присутствовать соответствующий метод:
type
TAnObject = class(TObject)
property AProperty: TSomeType read GetValue;
end;
В этом примере вне объекта значение свойства можно лишь прочитать; попытка присвоить свойству AProperty значение вызовет ошибку компиляции.
Для присвоения свойству значения по умолчанию используется ключевое СЛОВО default:
property Visible: boolean read FVisible write SetVisible default True;
Это означает, что при запуске программы свойство будет установлено компилятором В True.
Свойство может быть и векторным; в этом случае оно внешне выглядит как массив:
property APoints[Index : Integer]:TPoint read GetPoint write SetPoint;
На самом деле в классе может и не быть соответствующего поля — массива. Напомним, что вся обработка обращений к внутренним структурам класса может быть замаскирована.Для векторного свойства необходимо описать не только тип элементов массива, но также имя и тип индекса. После ключевых слов read и write в этом случае должны стоять имена методов — использование здесь полей массивов недопустимо. Метод, читающий значение векторного свойства, должен быть описан как функция, возвращающая значение того же типа, что и элементы свойства, и имеющая единственный параметр того же типа и с тем же именем, что и индекс свойства:
function GetPoint(Index:Integer):TPoint;
Аналогично, метод, помещающий значения в такое свойство, должен первым параметром иметь индекс, а вторым — переменную нужного типа (которая может быть передана как по ссылке, так и по значению):
procedure SetPoint(Index:Integer; NewPoint:TPoint);
У векторных свойств есть еще одна важная особенность. Некоторые классы в Delphi (списки TList, наборы строк TStrings) «построены» вокруг основного векторного свойства (см. гл. 7). Основной метод такого класса дает доступ к некоторому массиву, а все остальные методы являются как бы вспомогательными. Специально для облегчения работы в этом случае векторное свойство может быть описано с ключевым словом default:
type
TMyObject = class;
property Strings[Index: Integer]: string read Get write Put; default;
end;
Если у объекта есть такое свойство, то можно его не упоминать, а ставить индекс в квадратных скобках сразу после имени объекта:
var AMyObject: TMyObject;
begin
AMyObject.Strings[1] := ‘ F i r s t 1 ; {первый способ}
AMyObj ect[2] := ‘Second’; {второй способ}
end.
Будьте внимательны, применяя зарезервированное слово default, — как мы увидели, для обычных и векторных свойств оноупотребляется в разных случаях и с различным синтаксисом.О роли свойств в Delphi красноречиво говорит следующий факт: у всех имеющихся в распоряжении программиста стандартных классов 100% полей недоступны и заменены базирующимися на них свойствами. Рекомендуем при разработке собственных классов придерживаться этого же правила. Внимательный читатель обратил внимание, что при объяснении терминов «поле» и «свойство» мы использовали понятие метода, и наверняка понял его общий смысл. Итак, методом называется объявленная в классе функция или процедура, которая используется для работы с полями и свойствами класса. Согласно принципам ООП (см. разд. «Инкапсуляция» далее в этой главе), обращаться к свойствам класса можно только через его методы. От обычных процедур и функций методы отличаются тем, что им при вызове
передается указатель на тот объект, который их вызвал. Поэтому обрабатываться будут данные именно того объекта, который вызвал метод. На некоторых особенностях использования методов мы остановимся ниже.
2. Объекты: свойства и методы.
Объекты (Objects). Как конструирование графического интерфейса, так и
разработка программного кода базируется на использовании программных объектов.
Каждый объект обладает определенным набором свойств и может использовать определенные
методы обработки данных. Если говорить образно, то объекты — это существительные,
свойства объекта — это прилагательные, а методы объекта — это глаголы.
Программные объекты обладают свойствами и могут использовать методы обработки данных.
Классы объектов являются «шаблонами», определяющими наборы свойств,
методов и событий, по которым создаются объекты. Основными классами объектов
являются объекты, реализующие графический интерфейс проектов.
Объект, созданный по «шаблону» класса объектов, является экземпляром класса и наследует весь
набор свойств, методов и событий данного класса. Каждый экземпляр класса
объектов имеет уникальное для данного класса имя.
Основой для создания графического интерфейса проекта является объект «форма» (рис.).
На основании класса объектов Form можно создавать экземпляры
объектов «форма», которые получают имена Form1, Form2 и т. д.
Свойства объекта (Properties). Каждый класс объектов обладает определенным набором свойств. Так,
например, класс объектов Form обладает
несколькими десятками различных свойств, которые определяют размеры объекта
«форма», цвет формы, положение на экране монитора и т. д. (табл.).
Таблица. Некоторые свойства
объекта «форма»
Свойство | Значение | Комментарий |
Name | Form1 | Имя |
Text | Form1 | Текст |
BackColor | Control | Серый |
Font | MS Sans Serif, обычный, 8 | Шрифт, |
Различные экземпляры
класса объектов обладают одинаковым набором свойств, однако значения свойств у
них могут отличаться. Первоначальные значения свойств объектов можно установить
с использованием диалогового окна Свойства
(Properties) системы программирования.
Так, для объекта
«форма» Form1 можно установить требуемое
значение любого свойства. Для этого необходимо выбрать свойство из списка и
изменить его значение.
Значения свойств
объектов можно изменять в программном коде. Для присваивания свойству объекта
нового значения в левой части строки программного кода необходимо указать имя
объекта и затем — название свойства, которые в соответствии с правилами
точечной нотации разделяются между собой точкой. В правой части строки необходимо
записать конкретное значение свойства:
Объект.Свойство
= ЗначениеСвойства
Например, новая
надпись «Первый проект» в левом верхнем углу объекта Form1 (значение свойства Text) появится в результате выполнения программного кода:
Form1.Text = «Первый
проект»
Методы объекта (Methods). Объекты могут использовать различные методы обработки
данных. Методы имеют аргументы, которые позволяют задать значения параметров
выполняемых действий.
Для использования
метода в строке программного кода необходимо указать имя объекта и затем метод,
которые в соответствии с правилами точечной нотации разделяются между собой
точкой. В скобках при необходимости записываются аргументы метода, разделяемые
запятыми:
Объект.Метод (apr1,
арг2)
Например, с помощью
метода Scale (х, у) можно изменить
размеры формы или элемента управления. Аргументы метода x и y являются коэффициентами масштабирования по
горизонтали и вертикали, т. е. позволяют увеличить или уменьшить ширину и
высоту элемента управления. Например, можно в два раза увеличить размер объекта
по оси X и в
два раза его уменьшить по оси Y:
Me.Scale(2,0.5)
Если производятся операции над самой формой,
то вместо ее имени (например, Form1) в программном коде используется имя Me.