OO2/Jun 2022
Junski ispitni rok 2022. godine održan je 7. juna u 3 grupe (G1-IR, G2-SI, G3-SI).
- 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:
Grupa 1
1. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
goto
nije rezervisana reč u Javi i može se koristiti kao identifikator.goto
je rezervisana reč u Javi, ali može da se koristi za skok na označenu naredbu.goto
je rezervisana reč u Javi, ali ne može da se koristi za skok na označenu naredbu.
2. zadatak
Statički inicializacioni blokovi na jeziku Java:
- mogu da dovedu do problema cikličke statičke inicijalizacije koja dovodi do blokiranja programa.
- se izvršavaju po punjenju klase u memoriju.
- se izvršavaju na početku izvršenja svakog od konstruktora klase.
- ne smeju uopšte da pozivaju metode koje bacaju izuzetke
- mogu da bacaju izuzetke ako svi konstruktori klase navode odgovarajuće tipove izuzetaka u svojim
throws
klauzulama.
3. zadatak
Šta može da stoji umesto #### da bi se sledeći izvorni program napisan na programskom jeziku Java u naredna dva fajla uspešno preveo?
package p;
public class A {
private int a;
int b;
protected int c;
public int d;
}
package p;
public class B extends A {
public void m() {
####
}
public static void main(String[] args) {
new B().m();
}
}
b = 1;
c = 1;
A.a = 1;
d = 1;
a = 1;
4. zadatak
Označiti tvrdnje koje su tačne za interfejse na programskom jeziku Java.
- Metodi interfejsa mogu da budu javni (
public
), zaštićeni (protected
) i paketski. - Klasa koja implementira dva interfejsa koja imaju istu deklaraciju podrazumevanog (default) metoda mora da redefiniše ovaj metod.
- Interfejs može da se izvede iz više drugih interfejsa.
- Apstraktna klasa koja implementira interfejs ne mora da implementira sve deklarisane metode tog interfejsa.
- Klasa može da se izvede pomoću ključne reči
extends
iz interfejsa.
5. zadatak
Šta ispisuje sledeći program na programskom jeziku Java? Ukoliko smatrate da se program ne prevodi, uneti "-".
public class Test {
{ m(); }
public static void m() throws Exception { throw new Exception(); }
public Test() throws Exception { System.out.print("1"); }
public static void main(String[] args) {
try {
new Test();
System.out.print("2");
} catch(Exception e) {
System.out.print("3");
}
}
}
Odgovor: 3
6. zadatak
Označiti tvrdnje koje su tačne za niti na programskom jeziku Java.
- Niti nižeg prioriteta mogu da se izvršavaju i kada niti višeg prioriteta nisu blokirane.
- Prioriteti mogu da imaju vrednost između
Thread.MIN_PRIORITY
iThread.MAX_PRIORITY
. - Metoda
getPriority()
vraća prioritet tekuće niti. - Kada se jedom pokrene nit, njen prioritet može naknadno da se promeni.
- Kada se kreira nit, inicijalno joj se dodeljuje prioritet za jedan manji od prioriteta niti koja ju je kreirala.
7. zadatak
Koje od navedenih tvdrnji su tačne za upravljače rasporeda (layout manager) u AWT paketu biblioteke jezika Java.
FlowLayout
je bibliotečka klasa upravljača rasporeda koja raspoređuje komponente sleva-udesno u potrebnom broju redova.- Svaka klasa upravljača rasporeda je izvedena iz klase
LayoutManager
. StreamLayout
je bibliotečka klasa upravljača rasporeda koja raspoređuje komponente odozgo-naniže u potrebnom broju kolona.- Podrazumevani upravlja rasporeda za prozore je
BorderLayout
. - Podrazumevani upravljač rasporeda za panele je
GridLayout
.
8. zadatak
Klasa MenuBar izvedena je direktno iz klase
Component
MenuItem
MenuComponent
Menu
MenuContainer
9. zadatak
Označite tvrdnje koje su tačne za kontrolne strukture na programskom jeziku C#.
- Instrukcijom
goto
može da se skače na labelu koja se nalazi ispred proizvoljne naredbe u nekom metodu. - Ukoliko se neka grana
switch
naredbe ne završava naredbombreak
iligoto
dolazi do greške u prevođenju. - U jeziku postoji naredba
continue
. - Iskakanje iz
try
bloka korišćenjemgoto
naredbe dovodi do izvršavanjafinally
bloka. - Korišćenjem
foreach
petlje može se iterirati kroz kolekciju koja impelementira interfejsIEnumerable
.
10. zadatak
Šta ispisuje sledeći program na jeziku C#?
class Program {
static void M1(ref int i) { System.Console.Write(i++); }
static void M2(ref int i) { System.Console.Write(i/2); }
static void M3(ref int i) { System.Console.Write(i--); }
public delegate void Delegat(ref int i);
public static void Main(string[] args) {
Delegat d1 = new Delegat(M1);
Delegat d2 = new Delegat(M2);
Delegat d3 = d1 + d2;
Delegat d = d3 + d1;
d += new Delegat(M3) + d3;
d -= d1;
d -= d2;
d -= new Delegat(M3);
int i = 5;
d(ref i);
}
}
Odgovor: 536