ОО2/Јул 2021
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
G1
1. zadatak
Koje tvrdnje su tačne za tip String na programskom jeziku Java?
- Podatak tipa
Stringmoguće je kreirati isključivo korišćenjem alokator[sic]new. - Operator
+se koristi za konkatenaciju (nadovezivanje) stringova (niski). - Objekti tipa
Stringnisu promenljivi (jesu immutable) nakon stvaranja. - Sadržaji dva objekta tipa
Stringporede se na jednakost po vrednost koristeći operator==. - Tip
Stringje definisan u paketujava.lang.
2. zadatak
Šta ispisuje sledeći program na programskom jeziku Java? Upisati simbol x ukoliko se program ne prevodi.
public class Test {
{
i = 3;
}
private int i = 2;
public Test() {
System.out.print(i);
}
{
i = 1;
}
public static void main(String args[]) {
new Test();
}
}
Odgovor: 1
Objašnjenje: Prvo se izvršava inicijalizacioni blok sa i=3, zatim se polju i dodelju vrednost 2, a na kraju se u poslednjem inicijalizacionom bloku i dodeljuje vrednost 1, koja se i ispisuje u konstruktoru kao poslednja stvar koja se izvršava pri stvaranju objekata.
3. zadatak
Koja od sledećih tvrđenja su tačna na programskom jeziku Java?
- Članovi paketa mogu imati paketsko pravo pristupa.
- Članovi paketa mogu imati privatno pravo pristupa.
- Podrazumevano pravo pristupa članovima paketa je paketsko.
- Članovi paketa mogu imati zaštićeno pravo pristupa.
- Članovi paketa mogu imati javno pravo pristupa.
4. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- Javni nestatički metodi se mogu polimorfno redefinisati (nadjačati) u izvedenoj klasi.
- Paketski nestatički metodi se mogu polimorfno redefinisati (nadjačati) u izvedenoj klasi.
- Zaštićeni nestatički metodi se mogu polimorfno redefinisati (nadjačati) u izvedenoj klasi.
- Statički metodi se mogu polimorfno redefinisati (nadjačati) u izvedenoj klasi.
- Privatni nestatički metodi se mogu polimorfno redefinisati (nadjačati) u izvedenoj klasi.
5. zadatak
Šta sme da stoji umesto #### da bi se sledeći program napisan na programskom jeziku Java uspešno preveo?
interface I1 {
default void f() {}
}
interface I2 {
default void f() {}
}
interface I3 extends I1 {}
interface I4 extends I1 {}
interface I5 extends I1 {
default void f() {}
}
class B implements #### {}
I3, I4I3, I5I1, I2I1, I3I1
Objašnjenje: Nije moguće da ista klasa implementira dva interfejsa sa konfliktom u nazivu metode koja ima podrazumevanu implementaciju.
6. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- Metod wait je definisan u klasi Object.
- Pozivom metoda wait nit se može suspendovati na neodređeno vreme.
- Metodu wait može se proslediti kao argument vreme suspendovanja niti u milisekundama.
- Metod wait može biti polimorfno redefinisan (nadjačan) u izvedenoj klasi.
- Metod wait je definisan u klasi Thread.
7. zadatak
| Apstrakcija | Programski jezik |
|---|---|
|
|
8. zadatak
Koje od sledećih tvrdnji su tačne?
- Za platformu .NET moguće je pisati kod na velikom broju programskih jezika.
- U izvršnom okruženju (CLR) radnog okvira .NET moguće je isključiti prevođenje u vreme izvršenja (JIT) i omogućiti interpretaciju međukoda.
- Izvršni sklop (assembly) za .NET može biti u više fajlova.
- Izvršno okruženje (CLR) radnog okvira .NET može da izvršava bajtkod (bytecode) programa pisanog na jeziku Java.
- Jedinstveno ime (strong name) izvršnog sklopa (assembly) za .NET platformu sadrži digitalno potpisane podatke o imenu, verziji i kulturi.
9. zadatak
Za svaki od sledećih tipova podataka navesti da li su vrednosnog ili ukazanog tipa.
- Delegati Ukazani
- Klase Ukazani
- Strukture Vrednosni
10. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik C#?
- Izlazni parametri mogu da budu prostog tipa podataka.
- Za prenos izlaznih argumenata koristi se ključna reč ref.
- Izlazni parametri ne moraju da budu inicijalizovani pre prosleđivanja metodu.
- Metodi se mogu razlikovati po tome što jedan metod koristi ref, a drugi out prefiks odgovorajućeg parametra istog tipa, dok su ime metoda i svi ostali parametri jednaki za oba metoda.
G2
1. zadatak
Koja od navedenih tvrđenja su tačna za programski jezik Java?
- Svakoj referenci može da se dodeli literal null.
- Prilikom deklaracije reference nekog tipa mora se izvršiti i njena inicijalizacija.
- Ako na neki objekat ne pokazuje ni jedna referenca, onda takav objekat može biti uklonjen od strane sakupljača đubreta
- Referencu koja pokazuje na objekat nekog tipa potrebno je "dereferencirati" koristeći operator * da bi se pristupilo tom objektu.
- Referenca može da pokazuje na razne objekte srodnog tipa u toku svog životnog veka.
2. zadatak
Šta ispisuje sledeći program na programskom jeziku Java? Upisati simbol x ukoliko se program ne prevodi.
public class Test {
{
i = 3;
}
private int i = 2;
public Test() {
System.out.print(i);
}
static {
i = 1;
}
public static void main(String args[]) {
new Test();
}
}
Odgovor: x
Objašnjenje: U statičkom bloku klase Test nemoguće je pristupiti promenljivoj i bez reference na objekat.
3. zadatak
Koja od sledećih tvrđenja su tačna na programskom jeziku Java?
- Više tipova definisanih u jednom fajlu sa izvornim kodom na programskom jeziku Java može imati javno pravo pristupa.
- Članovima paketa sa paketskim pravom pristupa mogu da pristupaju samo ostali članovi istog paketa.
- Članovi paketa imaju pravo pristupa privatnim članovima drugih članova paketa.
- Više članova paketa može imati javno pravo pristupa.
- Članovi paketa imaju pravo pristupa paketskim članovima drugih članova paketa.
4. zadatak
Koja od sledećih tvrdnji su tačne za programski jezik Java?
- Odluka o izboru polimorfnog (virtuelnog) metoda koji će se izvršiti donosi se u vreme izvršavanja programa i zavisi isključivo od tipa reference koja upućuje na objekat i preko koje se metod poziva.
- Polimorfna redefinicija (nadjačanje) metoda u izvedenoj klasi zamenjuje implementaciju odgovarajućeg metoda iz osnovne klase.
- Odluka o izboru polimorfnog (virtuelnog) metoda koji će se izvršiti donosi se u vreme prevođenja programa i zavisi od tipa reference koja upućuje na objekat i preko koje se metod poziva.
- Odluka o izboru polimorfnog (virtuelnog) metoda koji će se izvršiti donosi se u vreme izvršavanja programa i zavisi od tipa objekta kojem se pristupa preko reference koja se koristi pri pozivu metoda.
- Potpis metoda koji se polimorfno redefiniše (nadjačava) u izvedenoj klasi mora biti identičan potpisu redefinisanog metoda, izuzev što tip rezultata nadjačanog metoda može da bude izvedenog (ili implementiranog) tipa iz tipa rezultata odgovarajućeg metoda osnovne klase.
5. zadatak
Šta sme da stoji umesto #### da bi se sledeći program napisan na programskom jeziku Java uspešno preveo?
interface I1 {
default void f() {}
}
interface I2 {
default void f() {}
}
####
interface I3 extends I1, I2 { default void f() {} }
interface I3 extends I1 { default void f() {} }
interface I3 extends I1 { default int f() {} }
interface I3 extends I1, I2 {}
interface I3 extends I1 {}
Objašnjenje: Greška se dešava kada se implementiraju dva interfejsa sa istim podrazumevanim metodom, ili ako se implementira novi podrazumevani metod sa potpisom u konfliktu.
6. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik Java?
- Metod notify treba koristiti kada više niti čekaju različite uslove.
- Poziv metoda notifyAll(1) ekvivalentan je pozivu metoda notify().
- Metod notify ima smisla koristiti kada najviše jedna nit ima koristi od ispunjenja nekog uslova.
- Metod notifyAll treba koristiti kada sve niti čekaju različite uslove.
- Metod notify ima smisla koristiti kada više niti čekaju isti uslov, ali je svejedno koja od njih će biti probuđena za obavljanje određene obrade.
7. zadatak
Koje od sledećih tvrdnji su tačne za paket java.awt?
- Klasa
Containerje zajednička osnovna klasa za sve GUI komponente. - Klasa
Dialogobavezno sadrži traku menija. - Klasa
Frameima naslovnu traku sa kontrolnim dugmadima i okvir. - Klasa
Componentje izvedena iz klaseContainer. - Klasa
Framemože da sadrži traku menija.
8. zadatak
Koje od sledećih tvrdnji su tačne?
- Programi pisani za platformu .NET se prevode u međukod koji se naziva bytecode.
- Alat Java Language Conversion Assistant (JLCA), koji konvertuje programe pisane na jeziku J++ u programe na jeziku C#, se nalazi u okviru integrisanog okruženja za razvoj programa Microsoft Visual Studio 2017.
- Izvršni sklop (assembly) za platformu .NET mora biti u jednom fajlu.
- Izvršno okruženje (CLR) radnog okvira .NET može da izvršava program iz fajla koji sadrži prevedeni C++ program na međujezik koji je nezavisan od arhitekture procesora.
- Jezik C# i infrastruktura za izvršavanje programa pisanih na ovom jeziku nisu formalno standardizovani, ali imaju preciznu specifikaciju u izdanju firme koja je razvila radni okvir .NET (Microsoft).
9. zadatak
Za svaki od sledećih tipova podataka navesti da li su vrednosnog ili ukazanog tipa.
- Nabrajanja Vrednosni
- Nizovi Ukazani
- Interfejsi Ukazani
10. zadatak
Koje od sledećih tvrdnji su tačne za programski jezik C#?
- Metodi se mogu razlikovati po tome što jedan metod ima neki parametar sa prefiksom ref ili out, a drugi ima odgovarajući parametar istog tipa bez prefiksa, dok su ime metoda i svi ostali parametri jednaki za oba metoda.
- Za prenos podataka po referenci koristi se ključna reč ref.
- Prenos vrednosnog parametra po referenci nije moguć.
- Kada se vrednosni tip prenosi po referenci, vrši se pakovanje.