wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Абстракни класове и ДЗИ

Total questions: 15

Worksheet time: 11mins

Name
Class
Date
1.

Даден е следния програмен фрагмент:

class Engine { private int power; public Engine(int power) { this.power = power; } }

class Vehicle { private Engine engine; public Vehicle(Engine engine) { this.engine = engine; } }

class Car extends Vehicle { public Car(Engine engine) { super(engine); } }

a)

Car "има" (has a) Vehicle и Vehicle "има" (has a) Engine

b)

Car "е" (is a) Vehicle и Vehicle "е" (is a) Engine

c)

Car "е" (is a) Vehicle и Vehicle "има" (has a) Engine

d)

Car "има" (has a) Engine и Vehicle "има" (has a) Engine

2.

Дадена е UML диаграма на система за онлайн книжарница, където:

Product е базов клас за всички продукти

PhysicalBook и EBook са видове продукти

ShoppingCart е количка за пазаруване, която може да съдържа различни продукти

Кое от следните твърдения правилно описва използването на принципите на наследяване и композиция/агрегация в системата?

a)

ShoppingCart наследява Product, а PhysicalBook и EBook са композиция на количката за пазаруване ShoppingCart

b)

PhysicalBook и EBook са наследници на Product, а ShoppingCart използва агрегация, за да съхранява списък от продукти

c)

ShoppingCart е наследник на Product, който може да съдържа само един вид продукт (или само PhysicalBook, или само EBook)

d)

PhysicalBook наследява EBook, а ShoppingCart създава нови продукти чрез наследяване

3.

Кой от изброените модификатори за достъп позволява най-широк достъп до съответния член на класа?

a)

protected

b)

private

c)

без (default)

d)

public

4.

Кое от следните твърдения за компонента TextBox ( за C#) / TextField (за Java) е вярно?

a)

Свойството Text (за C#)/ методът getText() (за Java) връща въведения текст като масив от символи

b)

При настройка ReadOnly = true (за C#)/ setEditable(false) (за Java) потребителят не може да вижда текста

c)

Свойството Text (за C#)/ методът getText() (за Java) връща въведения текст като символен низ

d)

TextBox (за C#) / TextField (за Java) се използва само за визуализиране на текст, но не и за въвеждане

5.

Посочете вярното твърдение за статичен метод на клас:

a)

В дефиницията на статичен метод на клас може да се използват както статични, така и нестатични членове на класа

b)

В дефиницията на статичен метод на клас не може да се използват нестатични членове на класа

c)

Статичен метод на клас може да се дефинира само в статичен клас

d)

Статичните методи на клас са винаги частни и не може да се достъпват от други класове

6.

За дадения програмен фрагмент, кое от твърденията е вярно?

String text = "exam"; for (int i = 0; i <= text.length(); i++){ System.out.print(text.charAt(i)); }

a)

Програмата няма да се компилира, защото Length (за C#) / length() (за Java) се използва неправилно

b)

Програмата няма да се компилира, защото достъпът до символ в низ е некоректен

c)

Програмата ще работи правилно и ще изведе "exam"

d)

Програмата ще генерира грешка при изпълнение

7.

Какво ще се изведе на стандартния изход след извикването на метода printNumbers(3)?

public static void printNumbers(int n)

{ if (n > 0)

{ printNumbers(n - 1);

System.out.print(" " + n);

}

}

a)

3 2 1

b)

1 2 3

c)

3 1 2

d)

1 3 2

8.

Какво ще се изведе на стандартния изход след изпълнение на следния програмен фрагмент:

String text = "Barbie without Ken";

text.replace("without", "meets");

System.out.println(text);

text = text.replace("without", "meets");

System.out.println(text);

a)

Barbie without Ken Barbie without Ken

b)

Barbie meets Ken Barbie meets Ken

c)

Barbie without Ken Barbie meets Ken

d)

Barbie meets Ken Barbie without Ken

9.

Каква е основната разлика между линейно и двоично търсене?

a)

Линейното търсене изисква сортиран масив, а двоичното не

b)

Двоичното търсене работи само с числа, а линейното – с всякакви данни

c)

Линейното търсене проверява последователно елементите, докато двоичното разделя структурата на части

d)

Линейното търсене винаги е по-бързо от двоичното

10.

Какво НЕ може да съдържа един абстрактен клас в Java?

a)

Нормални (неабстрактни) методи

b)

Конструктори

c)

Статични методи

d)

Абстрактни статични методи

11.

Какво ще се случи при компилация?

abstract class Report {

public abstract void generate();

}

class PdfReport extends Report {

}

a)

Кодът ще се компилира успешно

b)

Грешка при компилация – PdfReport трябва да имплементира generate() или да е абстрактен

c)

Грешка при изпълнение

d)

Нищо – generate() ще бъде наследен автоматично

12.

Какво ще се случи при компилация?

abstract class Report {

public abstract void generate();

}

class PdfReport extends Report {

}

a)

Кодът ще се компилира успешно

b)

Грешка при компилация – PdfReport трябва да имплементира generate() или да е абстрактен

c)

Грешка при изпълнение

d)

Нищо – generate() ще бъде наследен автоматично

13.

Кое от следните е валиден начин да се създаде обект, базиран на абстрактен клас?

abstract class Task {

abstract void execute();

}

a)

Task t = new Task();

b)

Task t = null;

c)

Task t = new Task() { void execute() { System.out.println("Run"); } };

d)

Не може да имаме променлива от тип Task

14.

Имате клас:

abstract class Shape {

public abstract double area();

public String info()

{ return "Generic shape"; }

}

Какво е вярно?

a)

Shape не може да има метод с готова имплементация (info())

b)

Абстрактният метод area() може да бъде private

c)

Клас Circle може да наследи Shape и да не override-не area()

d)

Всеки наследник на Shape трябва да override-не area()

15.

 Разгледайте:

abstract class Vehicle {

    public abstract int maxSpeed();

}

 

class Bike extends Vehicle {

    public int maxSpeed() { return 25; }

}

 

class Car extends Vehicle {

    public int maxSpeed() { return 130; }

}

Какво е вярно за кода:

Vehicle v = new Car();

System.out.println(v.maxSpeed());

a)

Ще се отпечата 0, защото типът на променливата е Vehicle

b)

Ще се отпечата 130

c)

Ще има грешка при компилация – абстрактни класове не могат да са тип на променлива

d)

Ще има грешка при изпълнение