Главная / Программирование /
Компонентный подход в программировании / Тест 11
Компонентный подход в программировании - тест 11
Упражнение 1:
Номер 1
Отметьте среди перечисленных пунктов утверждения, правильно описывающие характеристики языков программирования Java и C#.
Ответ:
 (1) Как в Java, так и C# все типы являются наследниками одного типа Object. 
 (2) В C# интерфейс может наследовать нескольким интерфейсам, а в Java — нет. 
 (3) В Java нет возможности объявить метод, который нельзя перегрузить в наследниках данного класса. 
 (4) В C# можно декларировать виртуальные свойства. 
 (5) В обоих языках можно обратиться к статическому методу класса через ссылку на объект этого класса. 
Номер 2
Отметьте среди перечисленных пунктов утверждения, правильно описывающие характеристики языков программирования Java и C#.
Ответ:
 (1) В обоих языках класс может реализовывать несколько интерфейсов. 
 (2) В C#, в отличие от Java, все типы являются наследниками одного типа Object. 
 (3) В Java, в отличие от C#, нельзя декларировать невиртуальные методы. 
 (4) В C# все свойства невиртуальны. 
 (5) В Java можно определять статические члены классов, а в C# — нельзя. 
Номер 3
Отметьте среди перечисленных пунктов утверждения, правильно описывающие характеристики языков программирования Java и C#.
Ответ:
 (1) В C#, в отличие от Java, все типы, которые могут быть точными типами объектов, являются наследниками одного типа Object. 
 (2) В Java, в отличие от C#, класс не может наследовать нескольким классам. 
 (3) В обоих языках все методы классов виртуальны. 
 (4) В C#, в отличие от Java, нельзя обратиться к статическому методу класса через ссылку на объект этого класса. 
 (5) В C# все операторы виртуальны. 
Упражнение 2:
Номер 1
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на Java.
public class A
{
public void m() { System.out.print("A"); }
public static void main (String[] args) {
A[] r = { new B(), new A(), new B() };
for(A a : r) a.m();
}
}
public class B extends A
{
public void m() { System.out.print("B"); }
}
Ответ:
 (1) AAA 
 (2) BBB 
 (3) ABA 
 (4) BAB 
 (5) ABAAB 
 (6) BABBA 
Номер 2
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на Java.
public class A
{
public void m() { System.out.print("B"); }
public static void main (String[] args) {
A[] r = { new B(), new A(), new B() };
for(A a : r) a.m();
}
}
public class B extends A
{
public void m() { System.out.print("AB"); }
}
Ответ:
 (1) ABABA 
 (2) BABAB 
 (3) ABBAB 
 (4) BAABA 
 (5) ABABAB 
 (6) BABABA 
Номер 3
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на Java.
public class A
{
public void m() { System.out.print("B"); }
public static void main (String[] args) {
A[] r = { new B(), new A(), new B() };
for(A a : r) a.m();
}
}
public class B extends A
{
public void m() { System.out.print("BA"); super.m(); }
}
Ответ:
 (1) BBB 
 (2) BABABA 
 (3) ABAAB 
 (4) BABBA 
 (5) ABAAABA 
 (6) BABBBAB 
Упражнение 3:
Номер 1
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
public class A
{
public void m() { Console.Write("A"); }
public static void Main () {
A[] r = { new B(), new A(), new B() };
foreach(A a in r) a.m();
}
}
public class B : A
{
public void m() { Console.Write("B"); }
}
Ответ:
 (1) AAA 
 (2) BBB 
 (3) ABA 
 (4) BAB 
 (5) ABAAB 
 (6) BABBA 
Номер 2
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
public class A
{
virtual public void m() { Console.Write("B"); }
public static void Main ()
{
A[] r = { new B(), new A(), new B() };
foreach(A a in r) a.m();
}
}
public class B : A
{
override public void m() { base.m(); Console.Write("A"); }
}
Ответ:
 (1) AAA 
 (2) BBB 
 (3) ABAAB 
 (4) BABBA 
 (5) ABABAB 
 (6) BABABA 
Номер 3
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
программа на C#.
public class A
{
virtual public void m() { Console.Write("A"); }
public static void Main () {
A[] r = { new B(), new A(), new B() };
foreach(A a in r) a.m();
}
}
public class B : A
{
override public void m() { Console.Write("AB"); }
}
Ответ:
 (1) AAA 
 (2) AABA 
 (3) AABAB 
 (4) ABAAB 
 (5) BABBA 
 (6) ABABAB 
Упражнение 4:
Номер 1
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на Java.
public class A
{
{ System.out.print("A"); }
public static void main (String[] args) {
A[] r = { new B(), new A(), new B() };
}
}
public class B extends A
{
{ System.out.print("B"); }
}
Ответ:
 (1) AAA 
 (2) BAB 
 (3) ABAAB 
 (4) BAABA 
 (5) ABABAB 
 (6) BABABA 
Номер 2
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на Java.
public class A
{
static { System.out.print("A"); }
public static void main (String[] args) {
A[] r = { new B(), new A(), new B() };
}
}
public class B extends A
{
{ System.out.print("B"); }
}
Ответ:
 (1) AAA 
 (2) ABB 
 (3) BBA 
 (4) BAA 
 (5) ABAAB 
 (6) BAABA 
Номер 3
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на Java.
public class A
{
{ System.out.print("A"); }
public static void main (String[] args) {
A[] r = { new B(), new A(), new B() };
}
}
public class B extends A
{
static { System.out.print("B"); }
}
Ответ:
 (1) AAA 
 (2) BAB 
 (3) ABAAB 
 (4) BAABA 
 (5) AAAB 
 (6) BAAA 
Упражнение 5:
Номер 1
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
public class A
{
static A() { Console.Write("B"); }
public static void Main () {
A[] r = { new B(), new A(), new B() };
}
}
public class B : A
{
public B() { Console.Write("A"); }
}
Ответ:
 (1) ABB 
 (2) BBA 
 (3) AAB 
 (4) BAA 
 (5) BABAB 
 (6) BBABA 
Номер 2
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
public class A
{
public A() { Console.Write("B"); }
public static void Main () {
A[] r = { new A(), new B(),new B() };
}
}
public class B : A
{
static B() { Console.Write("A"); }
}
Ответ:
 (1) BBB 
 (2) BABB 
 (3) BBBA 
 (4) BABAB 
 (5) BBABA 
 (6) BBABB 
Номер 3
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
public class A
{
public A() { Console.Write("B"); }
public static void Main () {
A[] r = { new A(), new B(),new B() };
}
}
public class B : A
{
public B() { Console.Write("A"); }
}
Ответ:
 (1) ABB 
 (2) BBA 
 (3) ABABA 
 (4) •BABAB 
 (5) AABAB 
 (6) BBABA 
Упражнение 6:
Номер 1
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на Java.
public class A
{
public A() { System.out.print("B"); }
public void m() { System.out.print("A"); }
public static void main(String[] args)
{
A[] r = { new A(){ public void m() { System.out.print("C"); }}, new A() };
for(A a : r) a.m();
}
}
Ответ:
 (1) AA 
 (2) CA 
 (3) BAA 
 (4) BCA 
 (5) BBAA 
 (6) BBCA 
Номер 2
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
delegate void D();
public class A
{
public static void m() { Console.Write("BA"); }
public static void n() { Console.Write("ABB"); }
public static void Main () {
D d = new D(m) + n + m + n;
d -= n;
d();
}
}
Ответ:
 (1) BABA 
 (2) BAABB 
 (3) ABBABB 
 (4) BAABBBA 
 (5) ABBBAABB 
 (6) BAABBBAABB 
Номер 3
Отметьте среди перечисленных пунктов текст, который выдает приведенная программа на C#.
public class A {
public virtual int M { get { Console.Write("C"); return 1; } }
public virtual int this[int i] { get { Console.Write("B"); return 2; } }
public static void Main () {
A[] r = { new B(), new A() };
foreach (A a in r) { int x = a[a.M]; }
}
}
public class B : A {
public override int M { get { Console.Write("A"); return 5; } }
public int this[int i] { get { Console.Write("D"); return 3; } }
}
Ответ:
 (1) CC 
 (2) AC 
 (3) BABC 
 (4) DABC 
 (5) ABCB 
 (6) ADCB