Главная / Программирование /
Объектное программирование в классах на С# 3.0 / Тест 6
Объектное программирование в классах на С# 3.0 - тест 6
Упражнение 1:
Номер 1
Классы А и В находятся в отношении "клиент - поставщик", если:
Ответ:
 (1) класс А объявляет себя клиентом класса B 
 (2) класс B объявляет себя поставщиком класса А 
 (3) полем класса А является объект класса В 
Номер 2
Классы А и В находятся в отношении "клиент - поставщик", если:
Ответ:
 (1) полем класса А является объект класса В 
 (2) хотя бы в одном из методов класса А происходит вызов свойств или методов класса В 
 (3) класс А подписывается на поставку сервисов класса В 
Номер 3
Укажите высказывания истинные для отношения "клиент - поставщик":
Ответ:
 (1) поставщик знает всех своих клиентов 
 (2) клиент знает всех своих поставщиков 
 (3) класс может быть сам себе клиент 
 (4) класс может быть сам себе поставщик 
 (5) у поставщика могут быть привилегированные клиенты, которым доступно больше сервисов, чем обычным клиентам 
Упражнение 2:
Номер 1
Укажите высказывания истинные для отношения "родитель - наследник":
Ответ:
 (1) родитель знает всех своих наследников 
 (2) наследник знает всех своих родителей 
 (3) класс может быть сам себе наследник 
 (4) класс может быть сам себе родитель 
Номер 2
Отношение "родитель - наследник" является транзитивным отношением. Транзитивность означает:
Ответ:
 (1) из истинности утверждений "В наследник А" и "С наследник Е" следует истинность утверждений "С наследник А" и "В наследник Е" 
 (2) из истинности утверждений "В наследник А" и "С наследник В" следует истинность утверждения "С наследник А" 
 (3) из истинности утверждений "В наследник А" и " С наследник В" следует истинность утверждения " А родитель С" 
Номер 3
Классы А и В находятся в отношении " родитель - наследник", если:
Ответ:
 (1) класс А объявляет себя родителем класса В 
 (2) класс В объявляет своим родителем класс А 
 (3) полем класса В является объект класса А 
Упражнение 3:
Номер 1
Отношение "клиент - поставщик" является транзитивным отношением. Транзитивность означает:
Ответ:
 (1) из истинности утверждений "В клиент А" и "С клиент Е" следует истинность утверждений "С клиент А" и " В клиент Е" 
 (2) из истинности утверждений " В клиент А" и " С клиент В" следует истинность утверждения " С клиент А" 
 (3) из истинности утверждений " В клиент А" и "С клиент В" следует истинность утверждения " А поставщик С" 
Номер 2
Отношение "А имеет В" (has)
следует рассматривать, как:
Ответ:
 (1) отношение вложенности и реализовывать отношением на классах "клиент - поставщик" 
 (2) отношение наследования и реализовывать отношением на классах "родитель - наследник" 
 (3) отношение, которое в одних ситуациях следует реализовывать отношением на классах "клиент - поставщик", в других - "родитель - наследник" 
 (4) особое отношение, которое нельзя реализовать ни отношением наследования, ни отношением вложенности 
Номер 3
Отношение "А является В" (is)
следует рассматривать, как:
Ответ:
 (1) отношение вложенности и всегда реализовывать отношением на классах "клиент - поставщик" 
 (2) отношение наследования и всегда реализовывать отношением на классах "родитель - наследник" 
 (3) отношение, которое в одних ситуациях следует реализовывать отношением на классах " клиент - поставщик" в других - " родитель - наследник" 
 (4) особое отношение, которое нельзя реализовать ни отношением наследования, ни отношением вложенности 
Упражнение 4:
Номер 1
Моделируя классы " Круг" и " Квадрат" описывающие геометрические фигуры, следует полагать, что:
Ответ:
 (1) эти классы не связаны никаким отношением 
 (2) класс " Круг" является родителем класса " Квадрат" 
 (3) класс " Круг" является клиентом класса " Квадрат" 
 (4) оба класса являются потомками общего родителя - класса " Геометрическая_Фигура" 
Номер 2
Моделируя классы " Прямоугольник" и " Квадрат" описывающие геометрические фигуры, следует полагать, что:
Ответ:
 (1) эти классы не связаны никаким отношением 
 (2) класс " Прямоугольник" является родителем класса " Квадрат" 
 (3) класс " Прямоугольник" является клиентом класса " Квадрат" 
 (4) оба класса являются потомками общего родителя - класса " Геометрическая_Фигура" 
Номер 3
Моделируя классы " Животные" и " Кошки" описывающие мир животных, следует полагать, что:
Ответ:
 (1) эти классы не связаны никаким отношением 
 (2) класс "Животные" является родителем класса " Кошки" 
 (3) класс " Животные" является клиентом класса "Кошки" 
 (4) оба класса являются потомками общего родителя - класса "Млекопитающие" 
Упражнение 5:
Номер 1
Класс А является клиентом класса В, если:
Ответ:
 (1) в одном из методов класса А "на лету" создается объект класса В 
 (2) в одном из методов класса А объявляется локальная переменная - объект класса В 
 (3) класс А не создает объектов класса В, но использует статический объект класса В и вызывает статические свойства и статические методы класса В 
Номер 2
Укажите истинные высказывания:
Ответ:
 (1) класс поставщик создает сервисы, предоставляемые своим клиентам 
 (2) клиенты не могут ни повлиять на поведение методов поставщика, ни изменить состав предоставляемых им сервисов, они не могут вызывать закрытые поставщиком поля и методы класса поставщика 
 (3) клиент не может создавать объекты поставщика, это может делать только сам поставщик 
Номер 3
Класс поставщик может закрывать поля и методы, делая их недоступными для своих клиентов. Скрытие информации
Ответ:
 (1) свидетельствует о злонамеренности поставщика и клиентам следует избегать таких поставщиков 
 (2) не дает возможности клиентам изменять сервисы, предоставляемые поставщиком 
 (3) делается в интересах клиентов класса. Классы клиенты строят свою реализацию, основываясь только на знании интерфейсной части класса поставщика. Изменения в закрытой части класса не скажутся на работе клиентов, если интерфейс класса не меняется 
Упражнение 6:
Номер 1
Укажите высказывания, истинные для отношения наследования:
Ответ:
 (1) наследование позволяет придать новую функциональность классу, оставляя без изменения хорошо работающий родительский класс 
 (2) при создании наследников, родительский класс теряет часть своих свойств и методов 
 (3) если у класса несколько наследников, то каждый из них наследует часть свойств родительского класса 
 (4) класс потомок наследует все возможности родительского класса - все поля и все методы, открытую и закрытую часть класса, статическую и динамическую части класса. Единственным исключением являются конструкторы класса, которые потомок не наследует 
Номер 2
Укажите высказывания, истинные для отношения наследования:
Ответ:
 (1) все поля и методы, закрытые для клиентов, закрыты и для потомков класса 
 (2) поля и методы, закрытые для клиентов, могут быть открыты для потомков класса 
 (3) хорошей стратегией при проектировании класса является предоставление потомкам класса прямого доступа ко всем полям и методам родительского класса 
Номер 3
Потомок класса может:
Ответ:
 (1) определить новые поля класса 
 (2) скрыть поля родительского класса, определив по-новому поля с именами, существующими в родительском классе 
 (3) определить новые методы класса 
 (4) скрыть методы родительского класса, определив по-новому методы с именами, существующими в родительском классе 
Упражнение 7:
Номер 1
Отметьте истинные высказывания:
Ответ:
 (1) потомок наследует все конструкторы родителя 
 (2) если потомок не определяет собственных конструкторов класса, то автоматически в класс добавляется конструктор по умолчанию - конструктор без аргументов 
 (3) конструктор по умолчанию - конструктор без аргументов автоматически добавляется в класс потомка, независимо от того, определяет ли потомок собственные конструкторы класса 
Номер 2
Пусть потомок создает метод с именем, совпадающим с именем метода родителя. Отметьте высказывания, истинные в этой ситуации:
Ответ:
 (1) если сигнатура нового метода отличается от сигнатуры метода родителя, то у потомка появляется перегруженный метод 
 (2) если сигнатура нового метода не отличается от сигнатуры метода родителя и метод родителя не имеет специальных модификаторов abstract, virtual, override
, то потомок скрывает метод родителя, доступ к которому по-прежнему остается возможным 
 (3) если сигнатура нового метода не отличается от сигнатуры метода родителя и метод родителя не имеет специальных модификаторов abstract, virtual, override
, то потомок удаляет метод родителя, доступ к которому теперь становится невозможным 
 (4) если сигнатура нового метода не отличается от сигнатуры метода родителя и метод родителя имеет специальные модификаторы abstract, virtual
или override
, то метод является полиморфным и потомок создает собственную реализацию этого метода 
Номер 3
Укажите истинные высказывания:
Ответ:
 (1) когда для создания объекта вызывается конструктор, то он в первую очередь вызывает конструктор своего непосредственного родителя, так транзитивно продолжается до тех пор, пока не будет вызван конструктор класса object
 
 (2) если родительский класс объявлен с модификатором abstract
, то можно создать наследника этого класса, который может быть как абстрактным, так и не абстрактным классом 
 (3) если родительский класс объявлен с модификатором sealed
, то можно создать наследника этого класса 
Упражнение 8:
Номер 1
В языке C#
контроль типов осуществляется:
Ответ:
 (1) статически, на этапе компиляции 
 (2) динамически, на этапе выполнения 
 (3) может осуществляться как статически, так и динамически, в зависимости от значения модификатора static
 
Номер 2
В языке C#
для каждого вызова x1.M(arg1, arg2, … argN)
связывание сущности x1
с методом М
осуществляется:
Ответ:
 (1) статически, на этапе компиляции 
 (2) динамически, на этапе выполнения 
 (3) может осуществляться как статически, так и динамически, в зависимости от наличия или отсутствия у метода одного из модификаторов - abstract, virtual
или override
 
Номер 3
Укажите механизмы, лежащие в основе полиморфизма
Ответ:
 (1) статический контроль типов 
 (2) одностороннее присваивание 
 (3) переопределение потомком реализации метода с сохранением его сигнатуры 
 (4) динамическое связывание