ОО2/К1 2022
Prvi kolokvijum 2022. godine na SI odseku se održao 30. marta. Od oblasti došle su objekti i klase, izvođenje, paketi, kao i pregled jezika Java.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
- Implementacija Java virtuelne mašine zavisi od konkretne platforme (arhitekture računara, operativnog sistema) za koju je namenjena, ali pod pretpostavkom da poštuje specifikaciju, pruža jedinstven "interfejs" za bajtkod.
- Interpretiranje bajtkoda je efikasno, ali u opštem slučaju slabijih performansi od izvršavanja programa na mašinskom jeziku.
- Implementacija Java virtuelne mašine je softver.
- Prevođenjem izvornog Java programa dobija se bajtkod.
- Samo programi pisani na programskom jeziku Java mogu da se prevedu u bajtkod.
2. zadatak
Za svaki od sledećih segmenata koda na jeziku Java navesti da li je vrednost promenljive rezultat jednaka vrednosti true ili false.
- false
String s1 = "Zdravo"; String s2 = "zDrAvO"; boolean rezultat = s1 == s2;
- false
String s1 = new String("Zdravo"); String s2 = "Zdravo"; boolean rezultat = s1 == s2;
- false
String s1 = new String("Zdravo"); String s2 = new String("Zdravo"); boolean rezultat = s1 == s2;
- true
String s1 = "Zdravo"; String s2 = "Zdravo"; boolean rezultat = s1 == s2;
3. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
- Nizovi su objekti, koji predstavljaju seriju podataka nekog tipa.
- Nakon kreiranja niza objekata
nizX
klaseX
naredbomX[] nizX = new X();
svi elementi niza koji predstavljaju reference inicijalizovani su nanull
. - Pristup elementu niza (indeksiranje) vrednošću indeksa van dozvoljenog opsega proizvodi izuzetak
IndexOutOfBoundException
. - ...
4. zadatak
Koje tvrdnje su tačne za glavni metod main na programskom jeziku Java?
- Metod main mora da ima povratnu vrednost tipa int.
- Metod main može da bude definisan bez parametara.
- Metod main mora da ima modifikator static.
- Metod main uvek vraća rezultat 0 kada se uspešno izvrši.
- Aplikacija može da ima više main metoda.
5. zadatak
Šta može da stoji umesto ####
da bi se sledeći kod napisan na programskom jeziku Java uspešno preveo?
class B {
B b1;
static B b2;
public static void s_f() {}
public void f() {}
public void test() {
####
}
}
s_f();
Object o = this.b1;
Object o = b2;
- ...
B.s_f();
6. zadatak
Koja od sledećih tvrđenja su tačna na programskom jeziku Java?
- Inicijalizacioni blokovi mogu da pozivaju statičke metode klase u kojoj su definisani.
- Inicijalizacioni blokovi mogu da budu statički, dinamički i automatski.
- Inicijalizacioni blokovi su članovi klase.
- Može da postoji tačno jedan statički i tačno jedan nestatički inicijalizacioni blok.
- Inicijalizacioni blokovi mogu da koriste
try
naredbe.
7. zadatak
Koje tvrdnje su tačne za pakete na programskom jeziku Java?
- Klasi koja ima paketsko pravo pristupa mogu da pristupe sve klase iz tog paketa i sve klase iz potpaketa tog paketa.
- Paket
A.X
može da postoji i ako paketA
nije definisan (u programu ne postoji naredbapackage A;
). - Pravo pristupa klasi u paketu može biti javno, paketsko i zaštićeno.
- Klase iz paketa
A.X
imaju pravo pristupa svim javnim klasama iz paketaA
. - Podrazumevano pravo pristupa za članove klase je privatno.
8. zadatak
Kojim ponuđenim odgovorom može da se zameni oznaka #### da bi se dati izvorni kod napisan na programskom jeziku Java uspešno preveo?
class B {
public B() {}
public B(int i) {}
}
class D extends B {
public D() {}
public D(int i) {
####
}
}
super(i);
this(i);
this();
//
super(i); this();
9. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- Dozvoljeno je korišćenje referenci tipa apstraktne klase.
- Svi metodi apstraktne klase moraju biti apstraktni.
- Klasa sa svim konkretnim metodima može da bude označena modifikatorom
abstract
. - Moguće je kreiranje objekata apstraktne klase, ako su svi metodi te apstraktne klase konkretni.
- Klasa sa barem jednim apstraktnim metodom mora da bude označena modifikatorom
abstract
.
10. zadatak
Označiti tačnu tvrdnju koja odgovara sledećem programskom segmentu.
class A implements Cloneable {}
public class Main {
public static void main(String[] args) {
try {
A a = new A();
a.clone();
System.out.println("uspeh");
} catch (CloneNotSupportedException e) {
System.out.println("neuspeh");
}
}
}
- Program ispisuje
neuspeh
. - Program se ne prevodi.
- Program ispisuje
uspeh
.