ОО2/К 2024

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Kolokvijum 2024. godine na RTI (i ostalim ER odsecima) održan je 20. aprila u 15:30h i trajao je 20 minuta. Od oblasti došli su uvod, pregled, klase, paketi, izvođenje, interfejsi, izuzeci i ugnježdeni tipovi na programskom jeziku Java.

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:


1. zadatak

Koje od sledećih tvrdnji su tačne za programski jezik Java?

  1. Ispravno je da se prosledi izuzetak tipa T na spoljašnji nivo bloka try iz koda rukovaoca catch(T i) {<kod>} navedenog iza bloka try iz kog je bačen izuzetak
  2. Ispravno je da postoji try blok kojeg ne sledi ni jedan catch blok
  3. Ispravno je da se baci izuzetak primitivnog tipa (npr. int)
  4. Ispravno je da se u jednom rukovaocu (catch grani) obrađuje više tipova izuzetaka
  5. Ispravno je da rukovalac (catch grana) osnovnog tipa izuzetka bude naveden pre (ispred) rukovaoca izvedenog tipa izuzetka

2. zadatak

Na jeziku Java moguće je stvoriti:

  1. Niz koji sadrži po referenci podatke klasnog tipa i nalazi se na steku.
  2. Niz koji sadrži po referenci podatke klasnog tipa i nalazi se u memoriji za dinamičku alokaciju (heap)
  3. Niz koji sadrži po referenci podatke prostog (primitivnog) tipa i nalazi se u memoriji za dinamičku alokaciju (heap)
  4. Niz koji sadrži po vrednosti podatke prostog (primitivnog) tipa i nalazi se na steku.
  5. Niz koji sadrži po vrednosti podatke klasnog tipa i nalazi se na steku.
  6. Niz koji sadrži po vrednosti podatke klasnog tipa i nalazi se u memoriji za dinamičku alokaciju (heap).
  7. Niz koji sadrži po referenci podatke prostog (primitivnog) tipa i nalazi se na steku.
  8. Niz koji sadrži po vrednosti podatke prostog (primitivnog) tipa i nalazi se u memoriji za dinamičku alokaciju (heap)

3. zadatak

Šta ispisuje sledeći program na programskom jeziku Java? Upisati simbol NP ukoliko se program ne prevodi.

interface I {
	static void m() {
		System.out.print(1);
	}
}

class B {
	public static void m() {
		System.out.print(2);
	}
}

class D extends B implements I {
	public D() {
		m();
		I.m();
	}
}

public class Test {
	public static void main (String args[]){
		new D();
	}
}

Odgovor: 21

4. zadatak

Neka je dat sledeći program koji se nalazi u fajlu Main.java.

//fajl Main.java
public class Main{
	public static void main (String args[]) {
		System.out.print("Pozdrav!");
	}
}

Šta je sve od navedenog tačno?

  1. Prevođenjem fajla Main.java dobija se fajl Main.class koji sadrži mašinski kod računara.
  2. Prevođenjem fajla Main.java dobija se fajl Main.class koji sadrži bajtkod.
  3. Komandom javac Main.java zadatom iz komandne linije pokreće se Javina virtuelna mašina koja prevodi dati fajl.
  4. Komandom java Main zadatom iz komandne linije pokreće se Javina virtuelna mašina koja izvršava prevedeni program.
  5. Fajl Main.java sadrži bajtkod.

5. zadatak

Koja od sledećih naredbi na jeziku Java može da se smatra ispravnom definicijom simboličke konstante (compile time constant) koja ne zahteva dodelu memorije u vreme izvršenja?

  1. Lokalna promenljiva metoda:
    static final int i = 100;
  2. Lokalna promenljiva metoda:
    final int i = 100;
  3. Član klase:
    public final int i = 100;
  4. Član klase:
    public static int i = 100;
  5. Član klase:
    public static final int i = 100;

6. zadatak

Šta može da stoji umesto ### da bi se sledeći izvorni kod napisan na jeziku Java uspešno preveo?

interface I{
	int add (int a, int b);
}

public class Test {
	public static void main (String args[]) {
		####
	}
}
  1. I c = int a, int b -> a + b;
  2. I c = (int a, int b) -> a + b;
  3. I c = (a, b) -> a + b;
  4. I c = a, b -> a + b;
  5. I c = (int a, b) -> a + b;

7. zadatak

Šta ispisuje sledeći program na programskom jeziku Java? Upisati simbol NP ukoliko se program ne prevodi.

class B {
	public void m(B x) {
		x.f();
	}
	public void f(){
		System.out.print(1);
	}
}

class D extends B {
	public void f(){
		System.out.print(2);
	}
}

public class Main{
	public static void main (String args[]){
		B b = new B();
		b.m(b);
		b = new D();
		b.m(b);
	}
}

Odgovor: 12

8. zadatak

Koje od sledećih tvrdnji su tačne za programski jezik Java?

  1. Ugnežđeni interfejsi su uvek statički
  2. Ugnežđena klasa ne može da bude označena metodom abstract
  3. Ugnežđena klasa može da proširi proizvoljnu klasu
  4. Tipovi ugnežđeni u interfejse su uvek javni
  5. Ugnežđenom tipu je moguć pristup samo unutar tipa u koji je ugrađen

9. zadatak

Napisati naredbu kojom se uvoze svi statički članovi klase Klasa iz paketa paket

Odgovor: import static paket.Klasa.*;

10. 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_m(){}
	public void m() {}
	public static void test(){
		####
	}
}
  1. B.test();
  2. Object o = this.b2;
  3. s_m();
  4. Object o = new B();
  5. this.m();