ОО2/К 2023
Колоквијум 2023. godine на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
Којом командом се следећи програмски код написан у фајлу са именом "Pozdrav.java" преводи и креира бајткод "Pozdrav.class"?
//Pozdrav.java
public class Pozdrav {
public static void main(String[] args) {
System.out.print("Zdravo!");
}
}
- java Pozdrav
- java Pozdrav.java
- javac Pozdrav.java
- javac Pozdrav.class
2. zadatak
Која од следећих тврђења су тачна за програмски језик Java?
Изаберите један или више одговора:
- goto је резервисана реч и не може се користити за име порменљиве.
- foreach је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.
- final је резервисана реч и не може се користити за име порменљиве.
- const је резервисана реч и не може се користити за име порменљиве.
- const је резервисана реч која може да се користи алтернативно са резервисаном речју final.
3. zadatak
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику Java?
- (без модификатора, подразумевано) Члан је доступан само у коду датог пакета.
- private Члан је доступан само у класи у којој је дефенисан.
- public Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.
- protected Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.
4. zadatak
Која од следећих тврђења су тачна за кључну реч this на програмском језику Java?
Изаберите један или више одговора:
- Може да се користи за позив другог конструктора исте класе.
- Може да се проследи као ствaрни аргумент неком методу.
- Користи се имплицитно (без навођења) као референца на текући објекат приликом директног именовања нестатичких чланова класе.
- Може да се користи као референца унутар статичких метода.
- Представља референцу на објекат коме се управо приступа.
5. zadatak
Која од следећих тврђења су тачна на програмском језику Java?
Изаберите један или више одговора:
- У неком фајлу са изворним кодом једног програма може да постоји декларација package p.sp; иако ни у једном фајлу истог програма не постоји декларација package p;
- Могуће је дефинисати тип А у пакету p уколико је истоимени тип већ дефинисан у пакету p.sp.
- Уколико постоје пакети p и p.sp увођењем свих чланова пакета p наредбом import p.*; уводе се и сви чланови пакета p.sp.
- Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (default) пакет.
- Могуће је приступити члану са пакетски правом приступа класе А дефинисане у пакету p из метода класе В дефинисане у пакету p.sp.
6. zadatak
Шта исписује следећи програм на прогрмаском језику Java? Уписати NP ако се програм не преводи.
class B {
public void f(B x) {
System.out.println(1);
}
}
class D extends B {
public void f(D x) {
System.out.println(2);
}
}
public class Test {
public static void main(String args[]) {
B b = new B();
b.f(new D());
b = new D();
b.f(new D());
}
}
Odgovor: 11
Objašnjenje: Ovde se primenjuje overloading, a ne overriding.
7. zadatak
Шта исписује следећи програм на прогрмаском језику Java? Уписати NP ако се програм не преводи.
interface I {
static void f() {
System.out.println(1);
}
}
class B {
public void f() {
System.out.println(2);
}
}
class D extends B implements I {
public D() {
I.f();
f();
}
}
public class Test {
public static void main(String args[]) {
new D();
}
}
Odgovor: 12
8. zadatak
За сваки од следећих програма на језику Java навести да ли се преводи или не.
- Не преводи се
public class Main { public static void f() { throw new Exception(); } public static void main(String args[]) { f(); } }
- Не преводи се
public class Main { public static void f() { throw new Exception(); } public static void main(String args[]) { try { f(); } catch (Exception e) {} } }
- Преводи се
public class Main { public static void main(String args[]) { try { throw new Exception(); } catch (Exception e) {} } }
9. zadatak
Које дефиниције угњеждених типова на језику Java су исправне?
Изаберите један или више одговора:
- static class C {}
- abstract class C {}
- local class C {}
- class C {}
- final class C {}
- static interface I {}
- annonymous class {}
- interface I {}
10. zadatak
Шта може да стоји уместо ### да би следећи код написан на језику Java успешно превео?
interface I {
int f(int a);
}
public class Test {
public static void main(String args[]) {
int b = 3;
###
}
}
I c = (double a) -> a + b;
I c = (int a) -> a + b;
I c = (int a) -> {a*a; return a;}
I c = (int a) -> {b--; return a + b;}
I c = (int a) -> { double r = a + b; return r;}