OO2/K 2022
Kolokvijum 2022. godine na RTI (i ostalim ER odsecima) održan je 17. arpila. Od oblasti došli su uvod, pregled, klase, paketi, izvođenje, interfejsi, izuzeci i ugnježdeni tipovi na programskom jeziku Java.
- 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, tako da se prikažu kada izaberete taj tekst (primer: ovako)
- Pritisnite levo dugme ispod za sakrivanje i otkrivanje svih odgovora, ili desno dugme za uključivanje i isključivanje interaktivnog režima:
1. zadatak
Koja od sledećih tvrđenja su tačna? (JDK = Java Development Kit, JRE = Java Runtime Environment, JVM = Java Virtual Machine)
- JDK je sastavni deo JVM
- JVM je sastavni deo JRE
- JRE je sastavni deo JDK
- JRE je sastavni deo JVM
- JDK je sastavni deo JRE
2. zadatak
Šta ispisuje sledeći programski kod na jeziku Java? Za program koji ne se prevodi uneti -1. Za program sa greškom u izvršavanju uneti -2.
public class Main {
public static void main(String[] args) {
int[] niz1 = new int[] {0, 1, 2};
int[] niz2 = new int[niz1.length];
int i = niz2.length;
for (int x : niz1) {
niz2[--i] = x;
}
for (int x : niz2) {
System.out.print(x);
}
}
}
Odgovor: 210
3. zadatak
Koje od sledećih tvrdnji su tačne za pojam konstruktora na programskom jeziku Java?
- Telo konstruktora se izvršava pre inicijalizacije nestatičkih polja (atributa) objekata.
- Moguće je definisati konstruktor sa više parametara
- Automatski ugrađen (implicitni) konstruktor javne klase je javan.
- Moguće je definisati konstruktor bez parametara
- Moguće je specificirati tip povratne vrednosti (tip rezultata) konstruktora
4. zadatak
Dat je sledeći deo koda na programskom jeziku Java.
public class B {
B b1;
static B b2;
public void f() {
B b3;
}
public static void main(String args[]) {
new B();
}
}
Koja od sledećih tvrđenja su tačna?
Izabrati jedan ili više odgovora:
- Naredbom
B b3;
se stvara objekat klaseB
. - Tek po stvaranju objekta klase
B
poljeb2
dobija vrednostnull
. - Po stvaranju objekta klase
B
poljeb1
dobija vrednostnull
. - Programski kod se ne prevodi, jer klasa
B
ne može da ima definisano polje sopstvenog tipa. - Promenljiva
b3
tipaB
nije inicijalizovana.
5. zadatak
Koje tvrdnje su tačne za pakete na programskom jeziku Java?
- Moguće je da kod jednog paketa bude raspoređen u više datoteka.
- Ukoliko paket
A
i paketB
sadrže ime tipaX
moguće je u istu datoteku uvesti sve tipove iz paketaA
i sve tipove iz paketaB
naredbamaimport A.*; import B.*;
. - U jednoj datoteci može da bude definisano više klasa koje pripadaju različitim paketima.
- Paketi se koriste za grupsianje logički povezanih interfejsa i klasa.
- Paket
java.lang
se uvozi implicitno.
6. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- Mogu da se stvaraju objekti klase označeni modifikatorom
final
. - Svi članovi klase koja je označena modifikatorom
final
implicitno postajufinal
. - Ako se svi metodi klase označe modifikatorom
final
, to je potpuno isto kao da je klasa označena modifikatoromfinal
. - Klasa
java.lang.Object
je označena modifikatoromfinal
. - Klasa može da bude označena modifikatorom
final
čime se proglašava konačnom i sprečava njeno proširivanje.
7. zadatak
Kojim programskim kodom se može zameniti deo koda označen sa ###
da bi se dati izborni kod napisan na programskom jeziku Java uspešno preveo?
class B {}
public class D extends B {
public D() {
####
}
public static void main(String[] arg) {}
}
super();
Object o = super;
String s = super.super.toString();
B b = (B) super;
String s = super.toString();
8. zadatak
Šta ispisuje sledeći programski kod na jeziku Java? Upisati 0 ako se kod ne prevodi.
interface A { default void m() { System.out.println("A.m()"); } }
interface B { default void m() { System.out.println("B.m()"); } }
public class X implements A, B {
public void m() { System.out.println("X.m()"); }
public static void main(String args[]) {
X x = new X();
x.m();
}
}
Odgovor: X.m()
9. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- Izuzeci na jeziku Java su isključivo objekti klasnih tipova.
- Objekti klase Throwable sadrže nisku koja služi da se njom opiše odgovarajuća izuzetna situacija.
- Izuzeci na jeziku Java mogu da budu primitivnih tipova.
- Svi tipovi izuzetaka moraju da budu izvedeni iz klase Exception ili njenih potklasa.
- Svi tipovi izuzetaka moraju da budu iz klase Throwable ili njenih potklasa.
10. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- U definiciji cilja lambda izraza koristi se funkcijski interfejs.
- Lambda izraz opisuje telo metoda automatski generisane anonimne klase koja implementira interfejs koje deklariše isključivo jedna apstraktna metoda.
- Lamdba izraz opisuje telo metoda automatski generisane anonimne klase koja proširuje apstraktnu klasu koja deklariše isključivo jedan apstraktni metod.
- Na mestu definisanja lambda izraza vrši se njegovo izračinavanje.
- Automatski generisana anonimna klasa lambda izraza implicitno proširuje klasu
java.lang.Lambda
.