OO2/K 2022
Kolokvijum 2022. na RTI (i ostalim ER odsecima) održan je 17. arpila. Do 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[ni1.lenght];
int i = niz2.lenght;
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 metoda
- 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 povrtane vrednosti (tip rezultata) konstruktora
4. zadatak
Dat je sledeći deo koda na programskom jeziku Java.
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 klase B.
- Tek po stvaranju objekta klase B polje b2 dobija vrednost null.
- Po stvaranju objekta klase B polje b1 dobija vrednost null.
- Programski kod se ne prevodi, jer klasa B ne može da ima definisano polje sopstvenog tipa.
- Promenljiva b3 tipa B 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 paket B sadrže ime tipa X moguće je u istu datoteku uvesti sve tipove iz paketa A i sve tipove iz paketa B naredbama import 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?
Izabrati jedan ili više odgovora:
- Mogu da se stvaraju objekti klase označeni modifikatorom final.
- Svi članovi klase koja je označena modifikatorom final implicitno postaju final.
- Ako se svi metodi klase označe modifikatorom final, to je potpuno isto kao da je klasa označena modifikatorom final.
- Klasa java.lang.Object je označena modifikatorom final.
- 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){}
}
Izaberite jedan ili više odgovora:
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?
Izaberite jedan ili više odgovora:
- 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?
Izaberite jedan ili više odgovora:
- 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 klasa.
- 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.