ОО2/К2 2021

Извор: SI Wiki
< ОО2
Датум измене: 7. мај 2021. у 23:14; аутор: KockaAdmiralac (разговор | доприноси) (Rekonstruisana G2 grupa uz pomoć Ivana, `<@673445567975784449>` i `<@190174976932970497>`)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу
  • Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni.
  • Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: ovako.
  • Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili:

G1

1. zadatak

2. zadatak

3. zadatak

4. zadatak

5. zadatak

6. zadatak

7. zadatak

8. zadatak

9. zadatak

10. zadatak

G2

1. zadatak

Označiti tačna tvrđenja na programskom jeziku Java:

  1. Eksplicitni ili implicitni poziv konstruktora nadklase se može izbeći ako se u konstruktoru izvedene klase pozove neki drugi konstruktor te iste klase.
  2. Ako se koristi, poziv drugog konstruktora iste klase mora biti prva naredba u konstruktoru.
  3. Konstrukcija objekta se može delegirati pozivom jednog konstruktora iz drugog konstruktora.
  4. Rekurziju u delegiranju konstruktora detektuje prevodilac.
  5. Dozvoljeno je u konstruktoru prvo pozvati konstruktor nadklase a zatim delegirati konstrukciju nekom drugom konstruktoru.

2. zadatak

Označiti tačna tvrđenja na programskom jeziku Java:

  1. Referenca na neki interfejs može pokazivati na literal null.
  2. Svi interfejsi su izvedeni iz klase Interface u paketu java.lang.
  3. Referenci na neki interfejs može se dodeliti objekat bilo koje klase koja proširuje[1] taj interfejs.
  4. Referenci na interfejs se može dodeliti objekat koji se dobije kada se sa druge strane alokatora new nađe naziv tog interfejsa.
  5. Referenca na neki interfejs se može dodeliti referenci tipa Object.

3. zadatak

Šta ispisuje sledeći kod na programskom jeziku Java? Ukoliko se program ne kompajlira, upisati 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();
    }
}

Odgovor: C.m

4. zadatak

Anonimna klasa na programskom jeziku Java može sadržati:

  1. konstruktor
  2. nestatičke metode
  3. statičke metode
  4. nestatička polja
  5. statička polja

5. zadatak

Šta se može napisati umesto ### kako bi se sledeći kod na programskom jeziku Java prevodio ispravno?

interface Calc {
    int m(int a, int b);
}
public class Test {
    public static void main(String[] arguments) {
        ###
    }
}
  1. Calc c = (int a, int b) -> a + b;
  2. Calc c = (int a, int b) -> { a + b };
  3. Calc c = (int a, int b) -> { int r = a + b; return r; };
  4. Calc c = (int a, int b) -> return a + b;
  5. Calc c = (int a, int b) -> { return a + b; };

6. zadatak

Šta se može napisati umesto $$$ kako bi se sledeći kod na programskom jeziku Java ispravno izvršavao i ispisivao 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. this.x
  3. super.x
  4. Spoljna.this.x
  5. Spoljna.x

7. zadatak

Označiti tačna tvrđenja na programskom jeziku Java:

  1. finally blok može da postoji bez catch bloka.
  2. finally blok se izvršava samo ukoliko se u catch bloku baci izuzetak.
  3. finally blok se izvršava samo ukoliko se u catch bloku ne baci izuzetak.
  4. finally blok se izvršava bez obzira na to da li je u catch bloku bačen izuzetak.
  5. finally blok se izvršava iako ne dođe do greške.

8. zadatak

Označiti tačna tvrđenja na programskom jeziku Java:

  1. Metoda start ponovo pokreće nit ukoliko je završena.
  2. Ponovni poziv start nakon završetka niti je greška.
  3. Poziv metode start stavlja nit nad kojom je pozvana u red spremnih niti.
  4. Nit koja poziva start se blokira.
  5. Nit koja poziva start se ne blokira.

9. zadatak

Označiti tačna tvrđenja na programskom jeziku Java:

  1. Poziv interrupt nad blokiranom niti izaziva izuzetak InterruptedException.
  2. Poziv interrupt nad blokiranom niti izaziva izuzetak ThreadDeath.
  3. Poziv interrupt nad blokiranom niti je deblokira.
  4. ...
  5. Poziv interrupt nad blokiranom niti ne postavlja interrupted status.

10. zadatak

Šta je tačno za sledeći kod na programskom jeziku Java?

public class Test {
    public static void main(String[] arguments) {
        Thread t1 = new Thread(() -> { while (true); });
        t1.setDaemon(true);
        t1.start();
    }
}
  1. Referenca t1 pokazuje na demonsku nit.
  2. Java virtuelna mašina (JVM) završava svoj rad nakon završetka glavne funkcije.
  3. Linija sa setDaemon u kodu ne menja demonski status niti na koju pokazuje t1.
  4. Nakon izvršenja glavne funkcije se ne izlazi iz programa jer ima još korisničkih niti za izvršavanje.
  5. Referenca t1 ne pokazuje na demonsku nit.

G3

1. zadatak

2. zadatak

3. zadatak

4. zadatak

5. zadatak

6. zadatak

7. zadatak

8. zadatak

9. zadatak

10. zadatak

Napomene

  1. Ovo nije bila navlakuša, već je trebalo da piše "implementira".