OO2/Jun 2023
Junski rok 2023. godine održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
G1
1. zadatak
Kojom komandom se sledeći programski kod čiji je prevedeni oblik - bajtkod - dat u fajlu "Pozdrav.class" može izvršiti?
public class Pozdrav {
public static void main(String[] args) {
System.out.print("Zdravo!");
}
}
javac Pozdrav.class
java Pozdrav.exe
java Pozdrav
javac Pozdrav.exe
2. zadatak
Šta ispisuje sledeći program na programskom jeziku Java? Upisati NP ako se program ne prevodi.
public class Test {
public Test() {
System.out.println(1);
}
{
System.out.println(2);
}
{
System.out.println(3);
}
static {
System.out.println(4);
}
public static void main(String[] args) {
new Test();
}
}
Odgovor: 4231
Objašnjenje: Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.
3. zadatak
Šta sme da stoji umesto #### da bi se sledeći izvorni program napisan na programskom jeziku Java uspešno preveo?
package prvi;
public class A {
private int a;
int b;
protected int c;
public int d;
}
package drugi;
public class B {
public static void main(String[] args) {
A obj = new A();
####
}
}
obj.b = 1;
obj.c = 1;
obj.d = 1;
obj.a = 1;
A.d = 1;
4. zadatak
Koje od sledećih tvrdnji su tačne za programki jezik Java?
- Nad metodima označenim modifikatorom final primenjuje se statičko vezivanje.
- Modifikator final je deo potpisa metoda.
- Nadjačanje (polimorfna redefinicija) metoda natklase u potklasi ne može da bude označena modifikatorom final.
- Metod označen modifikatorom final sprečava izvedene klase da ga redefinišu.
- Statički metod može da bude označen modifikatorm final.
5. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- Klasa nasleđuje statička konačna polja implementiranog interfejsa.
- Klasa nasleđuje podrazumevane metode implementiranog interfejsa.
- Dozvoljeno je pozvati statički metod m() interfejsa I iz nekog metoda klase K koja implementira dati interfejs I na način K.m().
- Podrazumevanom metodu m() implementiranog interfejsa I, klasa može da pristupi iz statičkog metoda direktno i koristeći notaciju I.super.m().
- Klasa mora da implementira apstraktne metode implementiranog interfejsa ili da bude proglašena apstraktnom.
6. zadatak
7. zadatak
8. zadatak
9. zadatak
Za svaki od sledećih vrsta .NET sklopova (eng. assembly) navesti tip (ekstenziju) fajla.
- Konzolni izvršni .exe
- Memorijski upravljački Ne postoji
- Grafički izvršni .exe
10. zadatak
G2
1. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
- Prilikom prevođenja izvornog koda na jeziku Java, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.
- Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa .java uvek se smesta u tačno jednu .class datoteku.
- Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.
- Prevodilac jezika Java prevodi izvorni kod na jeziku Java u bajtkod.
- Just in Time (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.
2. zadatak
Šta ispisuje sledeći program na programskom jeziku Java? Upisati NP ako se program ne prevodi.
public class Test {
{
System.out.println(1);
}
public Test() {
System.out.println(2);
}
{
System.out.println(3);
}
static {
System.out.println(4);
}
public static void main(String[] args) {
new Test();
}
}
Odgovor: 4132
Objašnjenje: Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.
3. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
- Jedan fajl sa izvornim kodom na programskom jeziku Java moze da sadrži više definicija tipova podataka.
- Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.
- Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena.
- Dozvoljeno je da se naredba import test.*; pojavi u jednom fajlu vise puta.
- Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.
4. zadatak
Šta ispisuje sledeći program na programskom jeziku Java? Upisati NP ako se program ne prevodi.
class B {
public B() {
f();
}
void f(){
System.out.println(1);
}
}
class D extends B {
public D() {
f();
}
public void f(){
System.out.println(2);
}
}
public class Test {
public static void main(String[] args) {
new D();
}
}
Odgovor: 22
Objašnjenje: Kada override-ujemo metode smemo proširiti njihov pristup.
5. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
- Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.
- Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.
- Supertipove neke klase čine i interfejsi koje ta klasa implementira.
- Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku Java.
- Programski jezik Java podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.
6. zadatak
Spojiti navedene tipove izuzetaka na programskom jeziku Java sa odgovarajućim iskazom koji najbolje opisuje njihovu prirodu.
- RuntimeException Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine.
- Error Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa.
- Throwable Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka.
- Exception Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje.
7. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
- Poziv metoda
join()
bez argumenata će blokirati nit pozivaoca dok se nit za koju je metod pozvan ne završi. - Metod
join()
je definisan klasi Thread. - Poziv metoda
notify()
za objekat niti iz koje je pozvan metodjoin()
će blokirati nit pozvanog objekta. - Metod
join()
baca provereni izuzetak InterruptedException. - Metod
join()
mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak IllegalMonitorStateException.
8. zadatak
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?
- Događaj vrste MOUSE_MOVED se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.
- Događaji miša su događaji niskog nivoa.
- Ako se kod izvora registruje osluškivač tipa MouseMotionListener, pri otpuštanju dugmeta miša dogodiće se događaj vrste MOUSE_RELEASED i biće pozvan metod koji obrađuje ovaj događaj.
- Događaj vrste MOUSE_CLICKED prethodi događaju MOUSE_RELEASED.
- Događaj vrste MOUSE_CLICKED će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.
9. zadatak
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).
- Biblioteka za dinamičko povezivanje .dll [1]
- Modul za statičko povezivanje .netmodule
10. задатак
Šta ispisuje sledeći program na programskom jeziku C#? (Za program koji se ne prevodi uneti NP. Za program sa greškom u izvršavanju uneti X)
class Program {
void M1(ref int i) { System.Console.Write(1); }
void M2(ref int i) { System.Console.Write(2); }
void M3(ref int i) { System.Console.Write(3); }
public delegate void Delegat();
public static void Main(string[] args) {
Delegat d1 = new Delegat(M1);
Delegat d2 = new Delegat(M2);
Delegat d3 = new Delegat(M3);
Delegat d = d1 + d2 + d3;
d += d1 - d2 + d3;
d();
}
}
Одговор: NP
Napomene
- ↑ Bilo je ponuđeno više odgovora.