ОО2/К 2024

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

Колоквијум 2024. године на РТИ (и осталим ЕР одсецима) одржан је 20. априла у 15:30х и трајао је 20 минута. Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Јава.

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


1. задатак

Које од следећих тврдњи су тачне за програмски језик Јава?

  1. Исправно је да се проследи изузетак типа T на спољашњи ниво блока try из кода руковаоца catch(T i) {<kod>} наведеног иза блока try из ког је бачен изузетак
  2. Исправно је да постоји try блок којег не следи ни један catch блок
  3. Исправно је да се баци изузетак примитивног типа (нпр. int)
  4. Исправно је да се у једном руковаоцу (catch грани) обрађује више типова изузетака
  5. Исправно је да руковалац (catch грана) основног типа изузетка буде наведен пре (испред) руковаоца изведеног типа изузетка

2. задатак

На језику Јава могуће је створити:

  1. Низ који садржи по референци податке класног типа и налази се на стеку.
  2. Низ који садржи по референци податке класног типа и налази се у меморији за динамичку алокацију (хеап)
  3. Низ који садржи по референци податке простог (примитивног) типа и налази се у меморији за динамичку алокацију (хеап)
  4. Низ који садржи по вредности податке простог (примитивног) типа и налази се на стеку.
  5. Низ који садржи по вредности податке класног типа и налази се на стеку.
  6. Низ који садржи по вредности податке класног типа и налази се у меморији за динамичку алокацију (хеап).
  7. Низ који садржи по референци податке простог (примитивног) типа и налази се на стеку.
  8. Низ који садржи по вредности податке простог (примитивног) типа и налази се у меморији за динамичку алокацију (хеап)

3. задатак

Шта исписује следећи програм на програмском језику Јава? Уписати симбол НП уколико се програм не преводи.

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();
	}
}

Одговор: 21

4. задатак

Нека је дат следећи програм који се налази у фајлу Маин.јава.

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

Шта је све од наведеног тачно?

  1. Превођењем фајла Маин.јава добија се фајл Маин.цласс који садржи машински код рачунара.
  2. Превођењем фајла Маин.јава добија се фајл Маин.цласс који садржи бајткод.
  3. Командом javac Main.java задатом из командне линије покреће се Јавина виртуелна машина која преводи дати фајл.
  4. Командом java Main задатом из командне линије покреће се Јавина виртуелна машина која извршава преведени програм.
  5. Фајл Маин.јава садржи бајткод.

5. задатак

Која од следећих наредби на језику Јава може да се сматра исправном дефиницијом симболичке константе (цомпиле тиме цонстант) која не захтева доделу меморије у време извршења?

  1. Локална променљива метода:
    статиц финал инт и = 100;
  2. Локална променљива метода:
    финал инт и = 100;
  3. Члан класе:
    публиц финал инт и = 100;
  4. Члан класе:
    публиц статиц инт и = 100;
  5. Члан класе:
    публиц статиц финал инт и = 100;

6. задатак

Шта може да стоји уместо ### да би се следећи изворни код написан на језику Јава успешно превео?

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. задатак

Шта исписује следећи програм на програмском језику Јава? Уписати симбол НП уколико се програм не преводи.

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);
	}
}

Одговор: 12

8. задатак

Које од следећих тврдњи су тачне за програмски језик Јава?

  1. Угнежђени интерфејси су увек статички
  2. Угнежђена класа не може да буде означена методом abstract
  3. Угнежђена класа може да прошири произвољну класу
  4. Типови угнежђени у интерфејсе су увек јавни
  5. Угнежђеном типу је могућ приступ само унутар типа у који је уграђен

9. задатак

Написати наредбу којом се увозе сви статички чланови класе Класа из пакета пакет

Одговор: импорт статиц пакет.Класа.*;

10. задатак

Шта може да стоји уместо #### да би се следећи код написан на програмском језику Јава успешно превео?

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();