ОО2/К 2024
Колоквијум 2024. године на РТИ (и осталим ЕР одсецима) одржан је 20. априла у 15:30х и трајао је 20 минута. Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Јава.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. задатак
Које од следећих тврдњи су тачне за програмски језик Јава?
- Исправно је да се проследи изузетак типа
T
на спољашњи ниво блокаtry
из кода руковаоцаcatch(T i) {<kod>}
наведеног иза блокаtry
из ког је бачен изузетак - Исправно је да постоји
try
блок којег не следи ни једанcatch
блок - Исправно је да се баци изузетак примитивног типа (нпр.
int
) - Исправно је да се у једном руковаоцу (
catch
грани) обрађује више типова изузетака - Исправно је да руковалац (
catch
грана) основног типа изузетка буде наведен пре (испред) руковаоца изведеног типа изузетка
2. задатак
На језику Јава могуће је створити:
- Низ који садржи по референци податке класног типа и налази се на стеку.
- Низ који садржи по референци податке класног типа и налази се у меморији за динамичку алокацију (хеап)
- Низ који садржи по референци податке простог (примитивног) типа и налази се у меморији за динамичку алокацију (хеап)
- Низ који садржи по вредности податке простог (примитивног) типа и налази се на стеку.
- Низ који садржи по вредности податке класног типа и налази се на стеку.
- Низ који садржи по вредности податке класног типа и налази се у меморији за динамичку алокацију (хеап).
- Низ који садржи по референци податке простог (примитивног) типа и налази се на стеку.
- Низ који садржи по вредности податке простог (примитивног) типа и налази се у меморији за динамичку алокацију (хеап)
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!");
}
}
Шта је све од наведеног тачно?
- Превођењем фајла Маин.јава добија се фајл Маин.цласс који садржи машински код рачунара.
- Превођењем фајла Маин.јава добија се фајл Маин.цласс који садржи бајткод.
- Командом
javac Main.java
задатом из командне линије покреће се Јавина виртуелна машина која преводи дати фајл. - Командом
java Main
задатом из командне линије покреће се Јавина виртуелна машина која извршава преведени програм. - Фајл Маин.јава садржи бајткод.
5. задатак
Која од следећих наредби на језику Јава може да се сматра исправном дефиницијом симболичке константе (цомпиле тиме цонстант) која не захтева доделу меморије у време извршења?
- Локална променљива метода:
статиц финал инт и = 100; - Локална променљива метода:
финал инт и = 100; - Члан класе:
публиц финал инт и = 100; - Члан класе:
публиц статиц инт и = 100; - Члан класе:
публиц статиц финал инт и = 100;
6. задатак
Шта може да стоји уместо ### да би се следећи изворни код написан на језику Јава успешно превео?
interface I{
int add (int a, int b);
}
public class Test {
public static void main (String args[]) {
####
}
}
I c = int a, int b -> a + b;
I c = (int a, int b) -> a + b;
I c = (a, b) -> a + b;
I c = a, b -> a + b;
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. задатак
Које од следећих тврдњи су тачне за програмски језик Јава?
- Угнежђени интерфејси су увек статички
- Угнежђена класа не може да буде означена методом
abstract
- Угнежђена класа може да прошири произвољну класу
- Типови угнежђени у интерфејсе су увек јавни
- Угнежђеном типу је могућ приступ само унутар типа у који је уграђен
9. задатак
Написати наредбу којом се увозе сви статички чланови класе Класа из пакета пакет
Одговор: импорт статиц пакет.Класа.*;
10. задатак
Шта може да стоји уместо #### да би се следећи код написан на програмском језику Јава успешно превео?
class B{
B b1;
static B b2;
public static void s_m(){}
public void m() {}
public static void test(){
####
}
}
B.test();
Object o = this.b2;
s_m();
Object o = new B();
this.m();