игра брюс 2048
Главная / Программирование / Объектное программирование в классах на С# 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) динамическое связывание 




Главная / Программирование / Объектное программирование в классах на С# 3.0 / Тест 6