ОО2/К2 2021

Извор: SI Wiki
< ОО2
Датум измене: 8. мај 2021. у 00:14; аутор: KockaAdmiralac (разговор | доприноси) (Rekonstruisana G2 grupa uz pomoć Ivana, `<@673445567975784449>` i `<@190174976932970497>`)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу
  • За питања са више одговора, тачни одговори су подебљани и уоквирени.
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени: овако.
  • Притисните на следеће дугме како бисте их сакрили или открили:

Г1

1. задатак

2. задатак

3. задатак

4. задатак

5. задатак

6. задатак

7. задатак

8. задатак

9. задатак

10. задатак

Г2

1. задатак

Означити тачна тврђења на програмском језику Јава:

  1. Експлицитни или имплицитни позив конструктора надкласе се може избећи ако се у конструктору изведене класе позове неки други конструктор те исте класе.
  2. Ако се користи, позив другог конструктора исте класе мора бити прва наредба у конструктору.
  3. Конструкција објекта се може делегирати позивом једног конструктора из другог конструктора.
  4. Рекурзију у делегирању конструктора детектује преводилац.
  5. Дозвољено је у конструктору прво позвати конструктор надкласе а затим делегирати конструкцију неком другом конструктору.

2. задатак

Означити тачна тврђења на програмском језику Јава:

  1. Референца на неки интерфејс може показивати на литерал нулл.
  2. Сви интерфејси су изведени из класе Интерфаце у пакету јава.ланг.
  3. Референци на неки интерфејс може се доделити објекат било које класе која проширује[1] тај интерфејс.
  4. Референци на интерфејс се може доделити објекат који се добије када се са друге стране алокатора new нађе назив тог интерфејса.
  5. Референца на неки интерфејс се може доделити референци типа Објецт.

3. задатак

Шта исписује следећи код на програмском језику Јава? Уколико се програм не компајлира, уписати 0.

interface A { default void m() { System.out.println("A.m()"); } }
class C { public void m() { System.out.println("C.m()"); } }
public class Test extends C implements A {
    public static void main(String[] arguments) {
        Test t = new Test();
        t.m();
    }
}

Одговор: C.м

4. задатак

Анонимна класа на програмском језику Јава може садржати:

  1. конструктор
  2. нестатичке методе
  3. статичке методе
  4. нестатичка поља
  5. статичка поља

5. задатак

Шта се може написати уместо ### како би се следећи код на програмском језику Јава преводио исправно?

interface Calc {
    int m(int a, int b);
}
public class Test {
    public static void main(String[] arguments) {
        ###
    }
}
  1. Цалц ц = (инт а, инт б) -> а + б;
  2. Цалц ц = (инт а, инт б) -> { а + б };
  3. Цалц ц = (инт а, инт б) -> { инт р = а + б; ретурн р; };
  4. Цалц ц = (инт а, инт б) -> ретурн а + б;
  5. Цалц ц = (инт а, инт б) -> { ретурн а + б; };

6. задатак

Шта се може написати уместо $$$ како би се следећи код на програмском језику Јава исправно извршавао и исписивао 2?

class Spoljna {
    int x = 1;
    class Unutrasnja {
        int x = 2;
        public void m(int x) {
            System.out.println($$$);
        }
    }
}

public class Main {
    public static void main(String[] arguments) {
        new Spoljna().new Unutrasnja().m(3);
    }
}
  1. x
  2. тхис.x
  3. супер.x
  4. Спољна.тхис.x
  5. Спољна.x

7. задатак

Означити тачна тврђења на програмском језику Јава:

  1. финаллy блок може да постоји без цатцх блока.
  2. финаллy блок се извршава само уколико се у цатцх блоку баци изузетак.
  3. финаллy блок се извршава само уколико се у цатцх блоку не баци изузетак.
  4. финаллy блок се извршава без обзира на то да ли је у цатцх блоку бачен изузетак.
  5. финаллy блок се извршава иако не дође до грешке.

8. задатак

Означити тачна тврђења на програмском језику Јава:

  1. Метода старт поново покреће нит уколико је завршена.
  2. Поновни позив старт након завршетка нити је грешка.
  3. Позив методе старт ставља нит над којом је позвана у ред спремних нити.
  4. Нит која позива старт се блокира.
  5. Нит која позива старт се не блокира.

9. задатак

Означити тачна тврђења на програмском језику Јава:

  1. Позив интеррупт над блокираном нити изазива изузетак ИнтерруптедЕxцептион.
  2. Позив интеррупт над блокираном нити изазива изузетак ТхреадДеатх.
  3. Позив интеррупт над блокираном нити је деблокира.
  4. ...
  5. Позив интеррупт над блокираном нити не поставља интерруптед статус.

10. задатак

Шта је тачно за следећи код на програмском језику Јава?

public class Test {
    public static void main(String[] arguments) {
        Thread t1 = new Thread(() -> { while (true); });
        t1.setDaemon(true);
        t1.start();
    }
}
  1. Референца т1 показује на демонску нит.
  2. Јава виртуелна машина (ЈВМ) завршава свој рад након завршетка главне функције.
  3. Линија са сетДаемон у коду не мења демонски статус нити на коју показује т1.
  4. Након извршења главне функције се не излази из програма јер има још корисничких нити за извршавање.
  5. Референца т1 не показује на демонску нит.

Г3

1. задатак

2. задатак

3. задатак

4. задатак

5. задатак

6. задатак

7. задатак

8. задатак

9. задатак

10. задатак

Напомене

  1. Ово није била навлакуша, већ је требало да пише "имплементира".