• Тест по объектно-ориентированному программированию (ООП)

Данный тест проходят студенты, которые обучаются с системе дистанционного обучения университета "ТИСБИ".

Тест включает в себя 34 вопроса и затрагивает 14 тем. На выполнение теста дается 24 часа.

На данной странице Вы можете купить файл с готовыми ответами на некоторые вопросы теста. В данный момент в файле всего 160 вопросов

Поэтому, если Вам попадется вопрос, которого нет в файле, то напишите его мне вконтакте. Я решу эти вопросы в счет стоимости данного файла.

Для того, чтобы получить файл с ответами на тест по операционным системам, необходимо добавить работу в корзину, оформить заказ и оплатить его. Сразу же после оплаты Вы сможете скачать работу с сайта в личном кабинете.


P.S. Для тех, кто купил и скачал ответы: в файле нажимаете Ctrl+F, в появившемся окне - кнопку "Параметры >>", в поле "Искать" выбираете "в книге", вводите текст вопроса (или его часть) в поле поиска и жмете "Найти все". Правильные ответы выделены зеленым, неправильные - красным. Удачи!


Ниже представлен перечень вопросов, ответы на который включены в файл, для удобства они разбиты по темам. (для поиска по странице жмите Ctrl+F).

1. Понятие об объектах. Принцип инкапсуляции

1. Какие утверждения относительно методов-конструкторов являются правильными?
  • конструктор выполняет инициализацию свойств объекта
  • конструктор вызывается раньше всех остальных методов
  • конструктор отвечает за создание объекта при выполнении программы
  • конструктор отвечает за освобождение памяти, выделенной объекту
2. Какие типы свойств может содержать объект?
  • основные стандартные базовые типы
  • структурированные свойства-массивы
  • объектные свойства
  • программные свойства
3. Какие типы методов обычно содержат классы?
  • конструкторы
  • методы доступа к свойствам 
  • методы, реализующие функциональность объектов класса
  • деструкторы
4. Какие утверждения относительно понятия «Программный объект» являются правильными?
  • с каждым объектом связываются данные и программный код
  • программный объект является моделью исходного объекта
  • объект существует при выполнении программы, занимая часть оперативной памяти
  • объекты используются для описания только физических сущностей
5. Какие утверждения относительно методов-деструкторов являются правильными?
  • деструктор отвечает за освобождение памяти, выделенной объекту
  • деструкторы реализованы не во всех объектных языках
  • в языках Java и С# вместо деструкторов используется механизм сборки мусора
  • деструктор отсутствуют в языке С++
6. Что определяет принцип инкапсуляции?
  • объединение в рамках объекта некоторых данных и программного кода обработки этих данных
  • ограничение доступа к элементам класса
  • механизм взаимодействия объектов
  • правила обработки ошибочных ситуаций
7. Какие утверждения являются верными относительно принципа абстрагирования?
  • абстрагирование позволяет выделять наиболее существенные особенности описываемых сущностей
  • абстрагирование позволяет строить разные описания сложных сущностей в зависимости от решаемой задачи
  • абстрагирование неразрывно связано с понятием абстрактного класса
  • абстрагирование является основой построения иерархических классификаций
8. Какие группы методов обычно связывают с объектами
  • конструкторы
  • методы доступа к закрытым свойствам
  • методы, определяющие функциональность объекта
  • системные методы
9. Какие утверждения справедливы относительно связываемого с объектом программного кода
  • весь программный код разбивается на подпрограммы-методы
  • программный код должен включать один или несколько специальных методов-конструкторов
  • для реализации доступа к закрытым данным должны использоваться специальные методы доступа
  • весь программный код всегда доступен для использования объектами-клиентами
10. Какие виды методов могут содержаться в классах
  • открытые методы
  • закрытые методы
  • абстрактные методы
  • перегруженные (overload) методы
11. Какие утверждения справедливы относительно правил описания методов в классах
  • методы оформляются как подпрограммы
  • методы могут иметь формальные параметры
  • все методы должны иметь программную реализацию
  • все методы должны иметь разные имена
12. Какие утверждения справедливы относительно открытых элементов класса
  • класс должен содержать хотя бы один открытый метод
  • открытыми должны быть все методы доступа
  • все поля данных должны быть объявлены как открытые
  • открытые элементы задаются с помощью директивы OPEN
13. Какие утверждения справедливы относительно методов доступа
  • использование методов доступа является одним из проявлений принципа инкапсуляции
  • эти методы вводятся для организации контролируемого доступа к закрытым данным
  • Get-метод (геттер) используется для запроса текущего значения закрытого элемента данных
  • Set-метод (сеттер) используется для изменения текущего значения элемента данных
14. Какие утверждения справедливы относительно принципа абстрагирования
  • абстрагирование позволяет выделять наиболее существенные элементы объектов
  • абстрагирование позволяет для сложных объектов строить различные описания в зависимости от решаемой задачи
  • абстрагирование провозглашает закрытость данных объекта
  • абстрагирование определяет объект как набор данных и программного кода

2. Классы и их описание

1. Какие утверждения относительно методов доступа к свойствам являются правильными?
  • директиву class
  • директиву abstract
  • имя класса
  • имя одного или нескольких интерфейсов
2. Какие компоненты может содержать заголовок абстрактного класса?
  • использование методов доступа является одним из проявлений принципа инкапсуляции
  • для изменения значения свойства используются Set-методы (сеттеры) 
  • для запроса значения свойства вводятся Get-методы (геттеры)
  • методы доступа всегда являются абстрактными
3. Какие утверждения относительно абстрактных методов являются правильными?
  • абстрактный метод имеет заголовок, но не имеет программной реализации
  • класс может содержать несколько абстрактных методов
  • абстрактные методы объявляются с помощью директивы abstract
  • все абстрактные методы в классе обязательно должны иметь одно и то же имя
4. Какие уровни доступа могут иметь элементы классов?
  • открытый (public)
  • защищенный (protected)
  • закрытый (private)
  • привилегированный (privileged)
5. Какие утверждения справедливы относительно методов объекта?
  • набор методов, связанных с объектом, не изменяется при выполнении программы
  • методы могут быть открытыми или закрытыми
  • методы определяют поведение объекта
  • метод всегда содержит некоторый программный код
6. Какие утверждения относительно открытых элементов класса являются правильными?
  • открытые элементы доступны в любом месте программы
  • открытые элементы задаются директивой public
  • открытыми элементами обычно являются методы класса
  • открытыми элементами всегда являются свойства класса
7. Какие утверждения справедливы относительно правил описания методов?
  • методы оформляются как подпрограммы
  • в одном классе методы могут иметь одинаковые имена
  • методы могут быть объявлены абстрактными
  • методы могут быть объявлены как статические, классовые
8. Что включает в себя описание класса?
  • заголовок с именем класса
  • перечень свойств с указанием их типов
  • заголовки методов
  • программный код обычных (не абстрактных) методов
9. Какие утверждения относительно понятия “перегрузка методов” являются правильными?
  • перегрузка методов – это наличие в классе нескольких одноименных методов
  • перегруженные методы должны отличаться друг от друга числом или типом формальных параметров
  • перегружать разрешается только конструкторы
  • перегрузка методов реализована только в языке С++
10. Какие утверждения справедливы относительно правил описания свойств?
  • свойства могут быть статическими (классовыми)
  • каждое свойство имеет имя и относится к некоторому типу
  • свойства рекомендуется объявлять закрытыми для непосредственного использования вне класса
  • свойства в одном классе могут иметь совпадающие имена
11. Какие утверждения относительно закрытых элементов класса являются правильными?
  • закрытые элементы доступны только внутри класса
  • закрытые элементы задаются директивой private
  • закрытыми элементами обычно являются свойства класса
  • закрытыми элементами являются все методы класса
12. Если на основе некоторого класса созданы его объекты-экземпляры, то
  • все они имеют одинаковый набор полей данных, но могут иметь разные значения этих полей
  • максимально возможное число создаваемых объектов определяется ресурсами оперативной памяти
  • все созданные объекты используют один набор методов-подпрограмм
  • для каждого объекта создается свой отдельный набор методов-подпрограмм
13. Какие утверждения справедливы относительно объектного подхода для разработки программ
  • объектный подход наиболее эффективен при разработке сложных программных систем
  • объектный подход позволяет лучше описывать структуру программы
  • объектный подход основан на использовании множества взаимодействующих объектов
  • любое современное приложение разрабатывается с использованием объектного подхода
14. Какие утверждения справедливы относительно понятия «класс»?
  • класс является способом формального описания однотипных объектов
  • любой объект должен быть отнесен к некоторому классу
  • классы могут менять свою структуру во время выполнения программы
  • на основе класса можно создать только один объект-экземпляр

3. Создание и использование объектов. Объектные переменные

1. Как синтаксически правильно оформляется вызов метода для объектной переменной?
  • ИмяПеременной.ИмяМетода;
  • ИмяМетода.ИмяПеременной;
  • ИмяМетода(ИмяПеременной);
  • ИмяПеременной:ИмяМетода;
2. Какие утверждения справедливы для операции присваивания значений объектных переменных?
  • в простейшем случае присваивать можно значения только переменных одного и того же класса
  • после выполнения операции обе переменные будут адресовать один и тот же объект
  • любой объектной переменной можно присвоить пустое значение
  • операция присваивания приводит к созданию копии адресуемого объекта
3. Какие утверждения справедливы относительно понятия «объектная переменная»?
  • объектная переменная используется для доступа к свойствам и методам объекта
  • объектная переменная должна иметь имя
  • при объявлении объектной переменной обязательно указывается класс, с которым она связывается
  • объектная переменная является скрытым, неявным указателем (ссылкой) на размещаемый в памяти объект
4. Какие утверждения справедливы относительно процесса создания объектов?
  • при успешном создании объекта устанавливается адресное значение объектной переменной
  • для создания объекта вызывается метод-конструктор
  • создание объектов происходит при объявлении объектных переменных
  • создание объектов синтаксически оформляется как оператор присваивания
5. Какие утверждения справедливы для операции сравнения значений объектных переменных?
  • сравнивать можно только переменные одно и того же классового типа
  • операция выполняет сравнение адресных значений объектных переменных
  • любую объектную переменную можно сравнивать с пустым значением
  • операция сравнения выполняет сравнение значений свойств соответствующих объектов
6. Какие конструкции реализуют правильное создание объектов класса МуСlass в языках Java и С# ?
  • MyClass MyObject; MyObject = new MyClass( );
  • MyClass MyObject = new MyClass( );
  • MyClass MyObject; new(MyObject) ;
  • MyClass MyObject;
7. Какие операции определены для объектных переменных?
  • присваивание значения одной переменной другой
  • сравнение значений двух переменных на равенство или неравенство
  • сравнение значений двух переменных на больше-меньше
  • любые арифметические операции
8. Какие ошибки возможны при использовании объектных переменных
  • вызов метода для несуществующего объекта
  • сравнение объектов разных классов
  • присваивание переменной пустого значения
  • сравнение объектной переменной с пустым значением

4. Разработка простейшего объекта-контейнера

1. Какие утверждения справедливы относительно механизма динамического изменения размера массива?
  • каждое изменение размера массива требует некоторого времени
  • рекомендуется увеличивать размер массива на 50-100 % от текущего значения
  • размер массива всегда увеличивается только на один элемент
  • каждое изменение размера массива приводит к выделению новой области памяти
2.Какие свойства можно определить для реализации простейшего контейнера?
  • массив переменных-ссылок на хранимые в контейнере объекты
  • счетчик текущего числа объектов в контейнере
  • свойство для описания типа хранящихся в контейнере объектов
  • указатель размещения в контейнере текущего объекта
3. Какие методы можно ввести при реализации контейнера-массива?
  • конструктор для создания пустого контейнера
  • метод запроса текущего числа объектов в контейнере
  • метод добавления нового объекта в контейнер
  • метод удаления объекта из контейнера
4. Какие рекомендации можно использовать при реализации метода добавления объекта в контейнер-массив?
  • метод должен проверять наличие свободного места в массиве ссылок
  • метод должен корректно изменять значение счетчика числа объектов в контейнере
  • метод рекомендуется оформлять в виде функции, возвращающей признак успешности выполнения операции
  • метод может иметь формальный параметр для задания адреса добавляемого объекта
5. Какие области памяти будут использоваться при выполнении программы с контейнером-массивом?
  • область памяти с адресом размещения объекта-контейнера
  • область памяти, где размещается массив ссылок на объекты
  • области памяти с объектами, включенными в контейнер
  • область памяти с адресом текущего объекта
6. Какие рекомендации можно использовать при реализации метода удаления объекта из контейнера-массива?
  • метод рекомендуется оформлять в виде функции, возвращающей признак успешности выполнения операции
  • метод должен проверять наличие объектов в контейнере
  • метод должен иметь формальный параметр для задания удаляемого объекта
  • метод должен корректно изменять значение счетчика числа объектов в контейнере
7. Что включает в себя этап неформального описания контейнера?
  • определение перечня необходимых свойств
  • определение набора необходимых методов
  • определение формы каждого метода
  • программную реализацию методов
8. Какие рекомендации используются при реализации контейнера/коллекции на основе динамического массива
  • контейнер/коллекция может иметь свойство для хранения текущего размера массива
  • при создании контейнера/коллекции его начальный размер можно устанавливать через параметр конструктора
  • метод добавления объекта должен «уметь» выполнять динамическое расширение массива
  • размер массива следует изменять с учетом компромисса между временем выполнения и затратами памяти
9. Какие свойства можно определить для реализации простейшего контейнера/коллекции?
  • массив переменных-ссылок на хранимые в контейнере/коллекции объекты
  • счетчик текущего числа объектов в контейнере/коллекции
  • свойство для описания типа хранящихся в контейнере/коллекции объектов
  • свойство для описания типа используемой структурной основы контейнера/коллекции
10. Какие методы можно ввести при реализации контейнера/коллекции на основе массива?
  • конструктор для создания пустого контейнера
  • метод запроса текущего числа объектов в контейнере
  • метод добавления нового объекта в контейнер
  • метод удаления объекта из контейнера
11. Какие утверждения справедливы относительно понятия "контейнер/коллекция"?
  • контейнер/коллекция - это объект, предназначенный для хранения и обработки некоторых объектов
  • контейнер/коллекцию можно реализовать на основе массива или динамического списка
  • основные стандартные библиотеки классов содержат реализации контейнеров/коллекций разного типа
  • контейнеры/коллекции можно реализовать на основе поискового дерева
12. Какие этапы включает в себя разработка контейнера/коллекции
  • неформальное описание контейнера/коллекции как объекта специального назначения
  • формализованное описание контейнера/коллекции в виде класса
  • программная реализация методов добавления, удаления, поиска
  • проверка работоспособности с помощью тестовой программы
13. Какие области памяти используются контейнерами/коллекциями на основе массивов
  • область памяти с данными самого объекта-контейнера/коллекции
  • область памяти, где размещается массив ссылок на хранимые объекты
  • области памяти с объектами, включенными в контейнер/коллекцию
  • область памяти с объектом-посредником, используемым для доступа к обрабатываемым объектам

Тема 5. Взаимодействие и синхронизация потоков

1. Какие утверждения справедливы относительно объектных свойств класса составных объектов?
  • эти свойства используются для связи составного объекта со своими объектами-частями
  • эти свойства используются для вызова методов объектов-частей
  • при объявлении этих свойств указывается имя класса объектов-частей
  • значения этих свойств могут устанавливаться только при выполнении конструкторов
2. Какие возможны способы реализации конструкторов в составных классах?
  • создание необходимых объектов внутри тела конструктора
  • получение и использование объектных ссылок на ранее созданные объекты
  • вызов конструкторов родительских классов
  • обращение к конструкторам дочерних классов
3. Между какими объектами можно установить композиционную связь?
  • объект «УчебноеЗдание», объект «УчебноеЗаведение», объект «УчебнаяАудитория»
  • объект «Кафедра», объект «Преподаватель», объект «Институт»
  • объект «Квартира», объект «Населенный пункт», объект «Дом»
  • объект «Шкаф», объект «Стол», объект «Стул»
4. Какие утверждения справедливы относительно реализации класса «Окружность» на основе композиции?
  • класс должен содержать объектное свойство-ссылку на объект класса «Точка»
  • класс может использоваться при объявлении более сложного составного класса типа «Деталь»
  • класс обязательно должен содержать свойства-координаты центра
  • класс должен быть дочерним (производным) относительно класса «Точка»
5. Какие утверждения справедливы относительно реализации класса «Прямоугольник» на основе композиции?
  • класс должен содержать объектное свойство-ссылку на объект класса «Точка»
  • класс может использоваться при объявлении более сложного составного класса типа «Деталь»
  • класс обязательно должен содержать свойства-координаты левого верхнего угла
  • класс должен быть дочерним (производным) относительно класса «Точка»
6. Какие преимущества дает использование композиции?
  • возможность повторного использования ранее созданного кода
  • возможность создания сложных объектов на основе более простых
  • возможность создания более быстрых программ
  • возможность использования механизма ограничения доступа к элементам классов
7. Какие утверждения относительно принципа композиции являются правильными?
  • композиция применяется для отражения связей типа Часть – Целое
  • композиция позволяет сводить более сложные объекты к более простым
  • композицию можно использовать для связывания любых объектов
  • композиция определяет правила ограничения доступа к элементам класса
8. Когда объекты А и В можно связать композиционной связью?
  • если объект А есть часть объекта В
  • если объект А есть разновидность объекта В
  • если объекты А и В являются экземплярами одного и того же класса
  • всегда
9. Какие утверждения справедливы относительно реализации класса «Деталь» на основе композиции?
  • класс должен содержать объектные свойства ссылки на объекты классов "Окружность" и "Прямоугольник"
  • метод отображения должен вызывать методы прорисовки своих объектов-частей
  • класс обязательно должен содержать объявления координат для всех необходимых базовых точек
  • класс должен быть дочерним (производным) относительно класса «Точка»
10. Какие утверждения справедливы относительно взаимодействия объектов на основе композиции
  • композиция используется для моделирования отношения типа «Часть - Целое»
  • для реализации композиции объект-клиент должен иметь ссылочную связь с объектом-сервером
  • композиция позволяет создавать сложные объекты на основе более простых
  • композиционное взаимодействие возможно между любыми объектами
11. Как реализуется связь объекта Автомобиль с объектом Двигатель
  • с помощью ссылочного поля типа Двигатель в классе Автомобиль
  • с помощью ссылочного поля типа Автомобиль в классе Двигатель
  • эти объекты нельзя связать друг с другом
  • за счет объявления класса Двигатель в заголовке класса Автомобиль
12. Какие утверждения справедливы относительно взаимодействия объектов на основе ассоциации
  • ассоциация используется когда одному объекту просто надо вызвать метод(ы) другого объекта
  • для реализации ассоциации объект-клиент должен иметь ссылочную связь с объектом-сервером
  • ассоциация используется для моделирования отношения типа "Часть-Целое"
  • ассоциация является разновидностью композиции

6. Разработка контейнера на основе адресного списка

1. Какие области памяти будут использованы при работе спискового контейнера с объектами-посредниками
  • области с данными собираемых в контейнер объектов
  • области с данными объектов-посредников
  • область с данными самого контейнера
  • область, содержащая массив ссылок на объекты
2. Что должен содержать класс «Посредник» при реализации спискового контейнера?
  • поле с адресом следующего элемента списка
  • поле с адресом связанного с элементом объекта
  • конструктор для создания нового объекта-посредника как элемента списка
  • методы доступа к адресным полям
3. Что должна содержать тестовая программа, демонстрирующая возможности спискового контейнера
  • объявление объектной переменной контейнерного типа
  • создание контейнера с помощью конструктора
  • создание собираемых в контейнер объектов с добавлением их с помощью соответствующего метода
  • создание объекта-посредника
4. Какие утверждения справедливы применительно к контейнерам на основе адресных списков?
  • они эффективны в условиях, когда количество собираемых объектов может изменяться в очень больших пределах
  • они интенсивно используют механизм динамического распределения памяти
  • они обеспечивают эффективное выполнение операций вставки и удаления
  • они обеспечивают более высокую скорость поиска по сравнению с контейнерами-массивами
5. Какие особенности имеет реализация спискового контейнера БЕЗ использования объектов-посредников?
  • связующие поля включаются непосредственно в набор полей собираемых в контейнере объектов
  • должно быть доступно описание класса собираемых в контейнере объектов
  • не требуется описывать и реализовывать класс объектов-посредников
  • данная реализация обеспечивает более сильную защиту данных собираемых в контейнере объектов
6. Какие функции должен реализовывать объект «Списковый контейнер»?
  • добавление новых объектов в контейнер
  • удаление заданных объектов из контейнера
  • поиск заданных объектов
  • итеративную обработку всех объектов в контейнере
7. Какие объекты используются для реализации спискового контейнера в самом общем случае?
  • объекты-посредники как элементы списка
  • объект-контейнер
  • объект-массив указателей
  • объект-строка с описанием хранимых объектов
8. Какие возможны варианты реализации адресных контейнеров?
  • служебные связующие поля могут включаться в состав полей самих объединяемых в список объектов
  • для связывания объектов в единую структуру можно использовать вспомогательные объекты-посредники
  • адресный список может быть реализован как двунаправленный
  • для хранения адресных связей можно использовать массивы специальной структуры
9. Какие функции возлагаются на объекты-посредники при реализации спискового контейнера
  • организация контролируемого доступа к адресу следующего элемента списка
  • организация контролируемого доступа к собираемым в контейнере объектам
  • добавление новых объектов в контейнер
  • поиск объектов в контейнере

7. Взаимодействие классов на основе наследования

1. Какие утверждения относительно принципа наследования являются правильными?
  • наследование описывает отношение между классами типа «Общее – частное»
  • механизм наследования является принципиальным отличием объектных языков от не-объектных
  • наследование можно применить к любым классам
  • наследование описывает отношение между классами типа «Часть – целое»
2. Какие утверждения справедливы относительно заголовка класса при использовании наследования?
  • в заголовке класса указывается имя родительского класса
  • если в заголовке класса имя родительского класса не указано, то родителем считается корневой класс Object
  • отсутствие в заголовке класса имени родителя считается синтаксической ошибкой
  • в заголовке класса можно указать всю цепочку прародителей данного класса
3. Какие методы должен включать в себя класс окружностей в иерархии графических объектов?
  • переопределенный метод отображения окружности
  • конструктор
  • переопределенный метод перемещения окружности
  • методы доступа к координатам центра окружности
4. Какие утверждения справедливы относительно понятия «простое наследование»?
  • родительский класс может иметь только одного потомка
  • дочерние классы могут иметь только одного родителя
  • простое наследование приводит к древовидной иерархии классов
  • в языках Java и C# реализовано только простое наследование
5. Какие утверждения определяют смысл механизма наследования?
  • в производном классе унаследованные данные и методы определять не надо
  • производные классы расширяют и дополняют своих родителей
  • на основе дочернего класса можно создавать свои производные классы
  • производные классы могут не включать некоторые данные и методы своих родителей
6. Между какими классами можно установить наследственную связь?
  • класс «Студент», класс «Учащийся», класс «Человек» 
  • класс «Упорядоченный список», класс «Линейный список», класс «Структура данных» 
  • класс «Стул», класс «Стол», класс «Шкаф»
  • класс «Студент», класс «Группа», класс «Факультет»
7. Какие утверждения относительно механизма ограничения доступа к элементам классов являются правильными при использовании наследования?
  • закрытые свойства родительского класса недоступны для прямого использования в дочерних классах
  • защищенные (protected) элементы родительского класса доступны для прямого использования только в дочерних классах
  • при создании нового класса можно использовать три уровня ограничения доступа public/protected/private
  • закрытые элементы родительского класса можно сделать открытыми в дочерних классах
8. Какие утверждения справедливы относительно понятия «множественное наследование»?
  • дочерние классы могут иметь несколько родителей
  • множественное наследование приводит к получению иерархии классов в виде ориентированного графа
  • множественное наследование отсутствует в языках Java и С#
  • все стандартные библиотеки классов построены на основе множественного наследования
9. Какие утверждения определяют смысл механизма наследования?
  • в производном классе унаследованные данные и методы определять не надо
  • производные классы расширяют и дополняют своих родителей
  • на основе дочернего класса можно создавать свои производные классы
  • производные классы могут не включать некоторые данные и методы своих родителей
10. Какие утверждения справедливы относительно древовидной иерархии классов?
  • древовидная иерархия возникает при использовании простого наследования
  • все стандартные и нестандартные классы являются прямыми или косвенными потомками корневого класса Object!
  • на верхних уровнях иерархии находятся наиболее общие классы, часто — абстрактные
  • библиотеки классов для платформ Java и .NЕТ имеют древовидную структуру
11. Какие существуют разновидности наследования
  • простое наследование
  • множественное наследование
  • частичное наследование
  • двойное наследование
12. Какие элементы должен содержать дочерний класс окружностей в иерархии графических объектов
  • поле данных для радиуса окружности
  • реальные методы прорисовки и перемещения окружности
  • методы доступа к радиусу окружности
  • поля данных для координат центра окружности
13. Какие разновидности методов может содержать родительский класс некоторой иерархии классов
  • абстрактные методы доступа к закрытым свойствам класса
  • виртуальные методы, разрешенные к переопределению в дочерних классах
  • методы-полуфабрикаты, в которых присутствуют вызовы абстрактных виртуальных методов
  • обычные методы, полностью готовые к использованию

8. Переопределение методов. Полиморфные (виртуальные) методы

1. Какие утверждения относительно механизма переопределения методов являются справедливыми?
  • переопределение методов является одним из проявлений принципа полиморфизма
  • переопределение позволяет создавать более гибкие объектные программы
  • переопределение используется для создания более быстрых объектных программ
  • переопределение обязательно используется во всех объектных программах
2. Какие утверждения справедливы относительно метода отображения в иерархии графических объектов?
  • метод отображения объявляется в корневом классе фигур как абстрактный
  • метод отображения объявляется в корневом классе фигур как виртуальный
  • метод отображения переопределяется в производных классах
  • метод отображения наследуется из корневого класса фигур без изменений
3. Какие утверждения справедливы относительно метода перемещения в иерархии графических объектов?
  • метод перемещения наследуется в производных классах
  • метод перемещения динамически настраивается во время выполнения программы
  • метод перемещения переопределяется в производных классах
  • метод перемещения объявляется и реализуется в корневом классе фигур
4. Какие методы можно объявлять виртуальными в иерархии графических объектов
  • методы отображения объектов
  • методы перемещения объектов
  • конструкторы
  • методы доступа к закрытым данным
5. Какие методы должен включать в себя корневой класс фигур в иерархии графических объектов?
  • абстрактный виртуальный метод отображения объектов
  • частично реализованный метод перемещения объектов
  • обычные методы доступа к закрытым данным-координатам базовой точки
  • абстрактный виртуальный конструктор
6. Какие методы можно объявлять виртуальными в иерархии графических объектов?
  • методы отображения объектов
  • методы перемещения объектов
  • конструкторы
  • методы доступа к закрытым данным
7. Какие утверждения справедливы относительно механизма раннего связывания?
  • механизм раннего связывания используется для компоновки обычных невиртуальных методов
  • механизм раннего связывания позволяет повысить скорость выполнения программы
  • механизм раннего связывания позволяет создавать максимально гибкие программы
  • механизм раннего связывания является основой механизма переопределения методов
8. Какие утверждения относительно таблиц виртуальных методов являются правильными?
  • для каждого класса, где имеются виртуальные методы создается своя таблица
  • таблица содержит адреса всех виртуальных методов класса
  • каждый объект имеет связь со своей таблицей виртуальных методов
  • для объектной программы создается одна объединенная таблица

9. Какие утверждения относительно динамической компоновки являются правильными

  • динамическая компоновка является основой механизма переопределения методов
  • динамическая компоновка позволяет создавать более гибкие программы
  • при использовании динамической компоновки необходимые фрагменты кода подключаются при выполнении программы
  • для реализации динамической компоновки необходимы дополнительные структуры данных

10. Если массив объявлен с классовым типом BaseClass, то какие ссылки он может содержать

  • ссылки на объекты класса BaseClass
  • ссылки на объекты классов, производных от BaseClass
  • ссылки на объекты класса Object/Tobject
  • ссылки на объекты любых классов

11. Какие утверждения относительно использования виртуальных методов в языке C# являются правильными

  • по умолчанию все методы в классе считаются не определенными
  • для объявления метода виртуальным используется директива virtual
  • для объявления метода невиртуальным используется директива final
  • по умолчанию все методы в классе считаются виртуальными

12. В чем состоит смысл переопределения методов

  • в возможности объявления в дочернем классе метода, имеющего одинаковую сигнатуру с родительским методом, но свою программную реализацию
  • в возможности объявления в классе нескольких одноименных методов с разными параметрами и разной программной реализацией
  • в возможности реализации в классе нескольких конструкторов
  • в наличии в классе методов доступа к закрытым данными класса

13. Какие утверждения относительно использования виртуальных методов в языке Java являются правильными

  • по умолчанию все методы в классе считаются виртуальными
  • для объявления метода невиртуальным используется директива final
  • для объявления метода виртуальным используется директива virtual
  • по умолчанию все методы в классе считаются обычными, невиртуальными

14. Какие утверждения справедливы относительно понятия «виртуальный метод»

  • виртуальные методы позволяют включать механизм позднего связывания
  • виртуальные методы позволяют создавать более гибкие программы
  • виртуальные методы повышают быстродействие программ
  • использование виртуальных методов является обязательным во всех объектных программах

15. Какие разновидности методов может содержать дочерний класс в некоторой иерархии классов

  • унаследованные обычные методы, полностью готовые к использованию
  • унаследованные методы-полуфабрикаты, при выполнении которых можно подключать необходимые реализации переопределенных виртуальных методов
  • переопределенные виртуальные методы родительского класса
  • новые методы, реализующие специфику дочернего класса


9. Полиморфизм на уровне объектных переменных

1. Какие утверждения справедливы относительно понятия «рефлексия»?
  • рефлексия – это процесс получения информации об используемых в программе классах
  • механизм рефлексии реализуется с помощью специальных классов
  • рефлексия является основой реализации компонентных инструментов разработки приложений
  • рефлексия – это способ повышения скорости выполнения объектных программ
2. Объекты каких классов может адресовать переменная типа Object в языках Java и C# ?
  • объекты любых стандартных классов
  • объекты любых нестандартных классов
  • только объекты класса Object
  • объекты любых вышестоящих классов
3. Какие возможности дает использование полиморфных объектных переменных?
  • можно создавать массивы и списки указателей на объекты разных классов
  • можно передавать указатели на объекты разных классов как параметры методов
  • можно использовать преимущества позднего связывания на основе виртуальных методов
  • можно создавать более быстрые программы
4. Какие утверждения справедливы относительно механизма проверки текущего типа объектной переменной?
  • механизм основан на использовании таблиц метаданных
  • для проверки текущего типа можно использовать специальные операторы
  • при отрицательном результате генерируется специальное исключение
  • проверка использует механизм позднего связывания
5. Какие утверждения справедливы относительно понятия «метаданные»?
  • метаданные используются для описания структуры классов
  • метаданные доступны во время выполнения программы
  • все созданные программой объекты связаны со своими метаданными
  • доступ к метаданным реализуется на объектном уровне с помощью специальных классов
6. Какие утверждения относительно переменных интерфейсного типа являются правильными?
  • переменные интерфейсного типа обладают свойством полиморфности
  • переменные интерфейсного типа можно использовать в качестве параметров методов
  • переменные интерфейсного типа объявлять запрещается
  • переменные интерфейсного типа используются при создании объектов интерфейсных классов
7. Какие разновидности классов могут использоваться при разработке объектной программы?
  • абстрактные классы
  • интерфейсные классы
  • обычные классы
  • полиморфные классы
8. Какие утверждения справедливы относительно механизма приведения типов?
  • конструкция явного приведения типов необходима для вызова через родительскую ссылку методов дочерних классов
  • приведение типов обычно используется совместно с проверкой текущего типа объектной переменной
  • для приведения типов можно использовать специальные операторы
  • операция приведения типа всегда возвращает логический результат
9. Какие утверждения относительно массива полиморфных объектных переменных являются правильными?
  • массив можно объявить с любым классовым типом, в том числе и абстрактным
  • наиболее универсальным является массив с классовым типом Object
  • в массив можно собирать как объекты базового класса, так и любых дочерних классов
  • для объявления массива надо использовать специальные директивы
10. Какие утверждения относительно полиморфности объектных переменных являются правильными?
  • свойство полиморфности объектных переменных имеет смысл только в пределах некоторой иерархии классов
  • полиморфная объектная переменная может адресовать объекты своего базового класса и его дочерних классов
  • полиморфизм объектных переменных позволяет создавать универсальные хранилища объектов разных классов
  • полиморфные объектные переменные объявляются с помощью специальных директив
11. Если задан родительский класс Parent и два его дочерних класса Child1 и Child2 и объявлены объектные переменные этих классов Par, Сh1 и Ch2 соответственно, то какие присваивания будут допустимыми с точки зрения принципа полиморфности
  • Par = Ch1
  • Par = Ch2
  • Ch1 = Ch2
  • Ch1 = Par

10. Разработка универсальных полиморфных контейнеров

1. Какие примеры универсальных контейнеров могут использоваться в практических задачах?

  • контейнер графических объектов
  • контейнер сотрудников организации с разными формами оплаты
  • контейнер управляющих элементов в оконных программах
  • контейнер студенческих групп, содержащих объекты-студенты

2. В каких элементах класса «Универсальный контейнер графических объектов на основе массива» используется принцип полиморфизма?

  • в объявлении базового массива
  • в методе добавления
  • в методе отображения всех объектов контейнера
  • в конструкторе класса
3. Какие утверждения справедливы относительно понятия «Универсальный контейнер графических объектов на основе массива»?
  • необходимо наличие подиерархии классов для графических объектов
  • в качестве базового типа необходимо использовать класс Figure
  • в контейнер можно добалять любые графические объекты
  • контейнер можно реализовать без использования свойства полиморфности объектных перемененных
4. Какие утверждения справедливы относительно класса «Универсальный контейнер графических объектов на основе массива»?
  • базовый массив объявляется с классовым типом Figure
  • метод добавления имеет полиморфный параметр типа Figure
  • класс содержит методы для полного или частичного отображения графических объектов
  • класс объявляется как абстрактный
5. Что должно включать в себя описание класса элементов списка при реализации универсального контейнера графических объектов?
  • методы добавления и удаления элементов в список
  • поле данных для адресации соседнего элемента-объекта списка
  • поле данных для адресации графического объекта, связанного с текущим элементом списка
  • конструктор для создания нового объекта-элемента списка
6. Какие утверждения относительно массива полиморфных объектных переменных являются правильными?
  • массив можно объявить с любым классовым типом, в том числе и абстрактным
  • наиболее универсальным является массив с классовым типом Object 
  • в массив можно собирать как объекты базового класса, так и любых дочерних классов
  • для объявления массива надо использовать специальные директивы
7. Какие утверждения справедливы относительно понятия «универсальный контейнер»?
  • универсальный контейнер может хранить и обрабатывать объекты разных классов
  • универсальный контейнер можно разрабатывать для любой подиерархии классов
  • универсальный контейнер использует свойство полиморфности объектных переменных
  • универсальный контейнер использует механизм переопределения методов
8. Что должно включать в себя описание класса элементов списка при реализации универсального контейнера графических объектов?
  • методы добавления и удаления элементов в список
  • поле данных для адресации соседнего элемента-объекта списка
  • поле данных для адресации графического объекта, связанного с текущим элементом списка
  • конструктор для создания нового объекта-элемента списка
9. Какие классы можно использовать в качестве корня подиерархии при создании универсальных контейнеров?
  • только абстрактные классы
  • класс Figure
  • любой класс, имеющий потомков
  • класс Object/TObject
10. Какие утверждения справедливы относительно понятия «универсальный контейнер графических объектов»?
  • необходимо наличие подиерархии классов для графических объектов
  • в качестве базового типа необходимо использовать класс Figure
  • в контейнер можно добавлять любые графические объекты
  • контейнер можно реализовать без использования свойства полиморфности объектных переменных
11. Какие утверждения справедливы относительно контейнера с базовым типом Object/Tobject
  • такой контейнер может хранить объекты любых классов
  • использование такого контейнера может создавать определенные проблемы
  • контейнер с таким типом создавать запрещено
  • объявление такого контейнера требует использования специальных директив
12. Какие объявления необходимы для реализации полиморфного контейнера на основе массива
  • объявление массива ссылок с указанием класса-родоначальника иерархии
  • объявление метода добавления объекта в контейнер с использованием полиморфного параметра
  • объявление метода получения полиморфной ссылки на объект
  • объявление метода-итератора для полиморфной обработки объектов в контейнере
13. Что должно включать в себя объявление класса объектов-посредников при реализации полиморфного спискового контейнера
  • объявление обычного (не полиморфного) поля для связи с соседними объектами-посредниками
  • объявление полиморфной переменной-ссылки на присоединенный информационный объект
  • объявление конструктора для создания объектов-посредников
  • объявление методов добавления и удаления объектов-посредников
14. Какие утверждения справедливы относительно степени универсальности полиморфных контейнеров
  • самая высокая степень у контейнеров с базовым типом Object/Tobject
  • самая низкая у контейнеров с базовым классом, у которого нет потомков
  • степень универсальности должна быть разумной и соответствовать решаемой задачи
  • степень универсальности можно менять во время выполнения программы
15. Какие особенности имеет реализация полиморфного списка с использованием объектов-посредников
  • для описания объектов-посредников необходимо использовать дополнительный класс
  • поля, используемые для связи объектов, входят в состав объектов-посредников
  • объекты-посредники для доступа к самим информационным объектам должны использовать полиморфные ссылки
  • связующие поля объявляются как полиморфные переменные
16. Какую структурную основу могут иметь полиморфные контейнеры
  • на основе простого или динамического массива полиморфных переменных
  • на основе связанных списков
  • на основе поисковых деревьев
  • на основе хеш-таблиц

Тема 11. Интерфейсные классы

1. Чем интерфейсные классы отличаются от абстрактных?
  • интерфейсные классы не могут содержать программную реализацию методов
  • между интерфейсными классами поддерживается множественное наследование
  • обычные классы можно создавать на основе нескольких интерфейсов
  • на основе интерфейсных классов можно создавать объекты-экземпляры
2. Какие утверждения относительно массива, объявленного с интерфейсным типом являются правильными
  • при объявлении массива можно использовать любой интерфейсный класс
  • массив может содержать объекты любых классов, реализующих базовый интерфейс
  • массив может содержать только объекты базового интерфейсного класса
  • такие массивы объявлять запрещается
3. Какие утверждения относительно интерфейсных классов являются справедливыми?
  • интерфейсный класс содержит только абстрактные методы
  • интерфейсные классы между собой поддерживают множественное наследование
  • интерфейсные классы являются разновидностями абстрактных классов
  • на основе интерфейсных классов можно объявлять и создавать объекты
4. Какие утверждения относительно переменных интерфейсного типа являются правильными?
  • переменные интерфейсного типа обладают свойством полиморфности
  • переменные интерфейсного типа можно использовать в качестве параметров методов
  • переменные интерфейсного типа объявлять запрещается
  • переменные интерфейсного типа используются при создании объектов интерфейсных классов
5. Чем абстрактные классы отличаются от интерфейсных?
  • абстрактные классы могут содержать программную реализацию некоторых методов
  • между абстрактными классами поддерживается только простое наследование
  • абстрактные классы могут содержать изменяемые поля данных
  • на основе абстрактных классов можно создавать объекты-экземпляры
6. Какие классы и в каком количестве можно использовать при конструировании обычных классов
  • только один обычный родительский класс
  • только один абстрактный родительский класс
  • любое количество интерфейсных классов
  • любое количество обычных и абстрактных классов
7. Какие утверждения справедливы относительно заголовков интерфейсных классов
  • заголовок содержит директиву interface
  • заголовок всегда содержит имя объявляемого интерфейса
  • заголовок может содержать список родительских интерфейсов
  • заголовок содержит директиву class

Тема 12. Обобщенные или параметризованные классы

1. Какие компоненты должен содержать заголовок обобщенного класса?
  • обычную директиву class
  • имя класса
  • одно или несколько имен обобщенных типов
  • специальную директиву generic
2. Пусть обобщенный класс имеет следующий заголовок: class Simple. Какие объявления экземпляров этого класса являются правильными?
  • Simple MyIntObj = new Simple(100);
  • Simple MyStrObj = new Simple(‘Hello’);
  • Simple MyIntObj = new Simple(0.01);
  • Simple MyObj = new Simple(100, ‘Hello’);
3. Что дает использование обобщенных классов?
  • на основе одного обобщенного класса можно создавать объекты с разными типами данных
  • уменьшается объем исходного текста программ
  • более высокую скорость компиляции программ
  • более высокую скорость выполнения программ
4. Какие утверждения справедливы относительно использования условных типов в обобщенных классах?
  • условные типы предназначены для замены конкретных реальных типов
  • в обобщенном классе можно использовать несколько условных типов
  • каждый условный тип имеет свое имя
  • условные типы указываются в заголовке обобщенного класса
5. Если метод имеет формальный параметр классового типа BaseClass, то какие фактические значения он может принимать при своем вызове?
  • значение-ссылку на объекты класса BaseClass 
  • значение-ссылку на объекты классов, производных от BaseClass 
  • значение-ссылку на объекты класса Object/TObject 
  • значение-ссылку на объекты любых классов
6. Пусть обобщенный класс имеет следующий заголовок: class MyClass. Какие объявления экземпляров этого класса являются правильными?
  • MyClass MyObj = new MyClass(100, 0.1);
  • MyClass MyObj = new MyClass(10, ‘Hello’);
  • MyClass MyObj = new MyClass(‘Hello’, 0.01);
  • MyClass MyObj = new MyClass(100);
7. Какие утверждения справедливы относительно заголовка обобщенного класса
  • в заголовке указываются имена условных типов
  • заголовок содержит имя обобщенного класса
  • вместо директивы class используется директива generic
  • каждый условный тип описывается с помощью директивы type
8. Какие утверждения справедливы относительно замены условных типов конкретными в обобщенных классах
  • условный тип можно заменять разными конкретными типами
  • для замены надо при объявлении объекта указать конкретный тип
  • замена выполняется при создании объекта
  • при замене не происходит никакого контроля соответствия типов
9. Какие утверждения справедливы относительно понятия «обобщенный класс»
  • в обобщенных классах можно не указывать конкретные типы данных
  • на основе одного обобщенного класса можно создавать объекты с разными типами данных
  • обобщенные классы позволяют увеличивать скорость выполнения объектных программ
  • обобщенными могут быть только абстрактные классы
10. Как в обобщенном классе могут использоваться условные типы
  • при описании полей данных
  • при объявлении параметров методов
  • при объявлении возвращаемых методами значений
  • при описании имен методов

Тема 13. Исключения и их объектная обработка

1. Что может быть причиной возникновения исключения?
  • некорректное выполнение операций ввода/вывода
  • неправильное использование объектных переменных
  • некорректное выполнение арифметических операций
  • неправильное объявление данных
2. Какие утверждения относительно понятия «исключение» являются справедливыми?
  • исключения связаны с ошибками, которые возникают при выполнении приложения
  • обработка исключений в современных программах выполняется на объектном уровне
  • использование исключений позволяет разрабатывать надежные программы
  • исключения позволяют повысить быстродействие приложений
3. Что необходимо сделать при написании программы для обработки исключений?
  • выделить потенциально опасные операторы, при выполнении которых могут возникнуть ошибки
  • оформить специальные блоки для обработки исключений
  • создать объекты-исключения с помощью конструкторов
  • после обработки исключения уничтожить объект с помощью деструктора
4. Какие утверждения справедливы относительно защищенных фрагментов программы?
  • начало защищенного фрагмента обозначается директивой try
  • защищенный фрагмент может содержать один или несколько потенциально опасных операторов
  • программа может содержать несколько защищенных фрагментов
  • защищенные фрагменты используются для выявления синтаксических ошибок
5. Какие возможны варианты оформления блока обработки исключений?
  • вывод сообщения об ошибке без указания ее типа
  • анализ типа ошибки с выводом конкретного сообщения
  • использование объекта-исключения для получения полной информации о возникшей ошибке
  • использование директивы finally для досрочного прерывания работы блока обработки
6. В чем состоят основные принципы объектной обработки исключений?
  • при возникновении исключения автоматически создается объект, содержащий информацию о данной проблеме
  • все стандартные особые ситуации классифицированы и описаны в виде классов
  • для обработки исключений в программах не нужны никакие дополнительные директивы
  • исключения обрабатываются на уровне интерфейсных классов
7. Какие утверждения относительно конструкции try – finally являются правильными?
  • блок finally выполняется всегда, независимо от возникновения исключения
  • конструкцию следует применять для освобождения используемых ресурсов
  • конструкцию можно комбинировать с конструкцией try – catch/except
  • блок finally выполняется только при возникновении исключения
8. Какие утверждения справедливы относительно иерархии классов исключений?
  • корнем иерархии является класс Exception
  • набор стандартных классов можно расширить собственными классами
  • классы исключений допускают множественное наследование
  • все классы являются абстрактными
9. Какие утверждения справедливы относительно программной генерации исключений?
  • для программной генерации предусмотрены специальные операторы
  • для генерации вызывается конструктор соответствующего класса
  • после использования объект исключения надо обязательно уничтожить деструктором
  • программная генерация исключений разрешена только для стандартных классов
10. Какие утверждения относительно обработки исключений являются правильными
  • если при выполнении защищенного кода возникает исключение, то управление сразу передается в блок обработки
  • если при выполнении защищенного кода исключения не возникают, то блок обработки пропускается
  • блок обработки выполняется всегда
  • после выполнения операторов в блоке обработки управление возвращается в критический код

Тема 14. Компонентная разработка приложений. Введение в компонентные модели

1. Какие требования должны учитываться при разработке компонентных объектов?
  • четкая специализация компонента с точки зрения конкретной решаемой задачи
  • возможность взаимодействия с другими компонентами
  • возможность использования компонентов в инструментах быстрой разработки приложений
  • соблюдение правил используемой при разработке компонентной модели
2. Какие утверждения справедливы относительно механизма сериализации?
  • сериализация позволяет сохранять объекты в файлах в виде потока байтов
  • сериализация применима для объектов любых классов, которые реализуют интерфейс Serializable
  • сериализация позволяет сохранять и восстанавливать объектную структуру любой сложности
  • сериализация основана на использовании механизма позднего связывания
3. Какие преимущества дает использование компонентного подхода при разработке приложений?
  • сокращение объема кода, написанного «вручную»
  • уменьшение сроков разработки приложений
  • получение более быстрого программного кода
  • возможность максимально полного использования аппаратных особенностей процессоров
4. Какие шаги включает в себя процесс разработки оконных приложений с помощью стандартных компонентов?
  • размещение необходимых компонентов на форме
  • установка свойств размещенных на форме компонентов
  • написание необходимых обработчиков событий
  • разработка используемых компонентных классов
5. Какие утверждения справедливы относительно понятия «компонент»?
  • компонент — это объект специального вида
  • компоненты являются экземплярами компонентных классов
  • компоненты являются основой средств быстрой разработки приложений
  • компоненты используются только для создания оконного пользовательского интерфейса
6. Какие утверждения относительно компонентных классов являются справедливыми?
  • компонентные классы являются разновидностью обычных классов
  • компонентные классы оформляются по специальным правилам
  • компонентные классы предназначены для использования в инструментах быстрого создания приложений
  • компонентные классы никогда не включаются в общую библиотеку классов
7. Какие особенности характерны для компонентной модели платформы Java?
  • организация в компонентных классах доступа к закрытым полям с помощью специальных элементов-свойств
  • использование интерфейсных классов для реализации механизма обработки событий
  • возможность сохранения структуры объектов во внешних файлах на основе механизма сериализации
  • реализация механизма обработки событий с помощью указателей на функции
8. Какие особенности характерны для компонентной модели платформы MS .NET
  • описание компонентного класса содержит закрытые поля данных и открытые свойства
  • обработка событий в компонентных классах реализуется с помощью специальных объектов-делегатов
  • поддержка компонентной модели стандартными классами базовой библиотеки
  • возможность сохранения структуры объектов во внешних файлах на основе механизма сериализации

Написать отзыв

Внимание: HTML не поддерживается! Используйте обычный текст!
    Плохо           Хорошо

Тест по объектно-ориентированному программированию (ООП)

  • 900.00 р.



Не подошла работа?

Узнайте стоимость написания работы по Вашему заданию

(это быстро и бесплатно)

Узнать стоимость

Спасибо, не надо