ОО2/К2 2021
< ОО2
Пређи на навигацију
Пређи на претрагу
- 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:
- Eksplicitni ili implicitni poziv konstruktora nadklase se može izbeći ako se u konstruktoru izvedene klase pozove neki drugi konstruktor te iste klase.
- Ako se koristi, poziv drugog konstruktora iste klase mora biti prva naredba u konstruktoru.
- Konstrukcija objekta se može delegirati pozivom jednog konstruktora iz drugog konstruktora.
- Rekurziju u delegiranju konstruktora detektuje prevodilac.
- 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:
- Referenca na neki interfejs može pokazivati na literal null.
- Svi interfejsi su izvedeni iz klase Interface u paketu java.lang.
- Referenci na neki interfejs može se dodeliti objekat bilo koje klase koja proširuje[1] taj interfejs.
- Referenci na interfejs se može dodeliti objekat koji se dobije kada se sa druge strane alokatora
new
nađe naziv tog interfejsa. - 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:
- konstruktor
- nestatičke metode
- statičke metode
- nestatička polja
- 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) {
###
}
}
Calc c = (int a, int b) -> a + b;
Calc c = (int a, int b) -> { a + b };
Calc c = (int a, int b) -> { int r = a + b; return r; };
Calc c = (int a, int b) -> return a + b;
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);
}
}
x
this.x
super.x
Spoljna.this.x
Spoljna.x
7. zadatak
Označiti tačna tvrđenja na programskom jeziku Java:
- finally blok može da postoji bez catch bloka.
- finally blok se izvršava samo ukoliko se u catch bloku baci izuzetak.
- finally blok se izvršava samo ukoliko se u catch bloku ne baci izuzetak.
- finally blok se izvršava bez obzira na to da li je u catch bloku bačen izuzetak.
- finally blok se izvršava iako ne dođe do greške.
8. zadatak
Označiti tačna tvrđenja na programskom jeziku Java:
- Metoda start ponovo pokreće nit ukoliko je završena.
- Ponovni poziv start nakon završetka niti je greška.
- Poziv metode start stavlja nit nad kojom je pozvana u red spremnih niti.
- Nit koja poziva start se blokira.
- Nit koja poziva start se ne blokira.
9. zadatak
Označiti tačna tvrđenja na programskom jeziku Java:
- Poziv interrupt nad blokiranom niti izaziva izuzetak InterruptedException.
- Poziv interrupt nad blokiranom niti izaziva izuzetak ThreadDeath.
- Poziv interrupt nad blokiranom niti je deblokira.
- ...
- 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();
}
}
- Referenca t1 pokazuje na demonsku nit.
- Java virtuelna mašina (JVM) završava svoj rad nakon završetka glavne funkcije.
- Linija sa setDaemon u kodu ne menja demonski status niti na koju pokazuje t1.
- Nakon izvršenja glavne funkcije se ne izlazi iz programa jer ima još korisničkih niti za izvršavanje.
- 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
- ↑ Ovo nije bila navlakuša, već je trebalo da piše "implementira".