ОО2/Јун 2023
Јунски рок 2023. године одржан је 6. јуна у две групе. Прва група(СИ) у 11:30х и друга група(РТИ + остали одсеци) у 12:00х.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
Г2
1. задатак
Која од следећих тврђења су тачна за програмски језик Јава?
- Приликом превођења изворног кода на језику Јава, могуће је навести опцију за добијање резултата превођења који представља машински код рачунара домаћина.
- Резултат превођења изворног код на језику Јава из једне датотеке типа .јава увек се сместа у тачно једну .цласс датотеку.
- Јава виртуелна масина (ЈВМ) преводи изворни код на језику Јава у бајткод.
- Преводилац језика Јава преводи изворни код на језику Јава у бајткод.
- Јуст ин Тиме (ЈИТ) преводилац преводи изворни код на језику Јава у бајткод.
2. задатак
Шта исписује следећи програм на програмском језику Јава? Уписати НП ако се програм не преводи.
public class Test {
{
System.out.println(1);
}
public Test() {
System.out.println(2);
}
{
System.out.println(3);
}
static {
System.out.println(4);
}
public static void main(String[] args) {
new Test();
}
}
Одговор: 4132
Објашњење: Извршавају се прво статички блокови прилико попуњавања класе у меморију, затим нестатички блокови па тек онда конструктор класе.
3. задатак
Која од следећих тврђења су тачна за програмски језик Јава?
- Један фајл са изворним кодом на програмском језику Јава мозе да садржи више дефиниција типова података.
- Дозвољено је приступити пакетском члану дефинисаном у пакету п.сп из кода неког типа податка дефинисаног у пакету п.
- По конвенцији именовања пакета, за именование кориснички дефинисаних пакета користи се обрнути редослед имена Интернет домена.
- Дозвољено је да се наредба импорт тест.*; појави у једном фајлу висе пута.
- Типови декларисани у изворној датотеци без декларације пакета неће бити сместени ни у један пакет.
4. задатак
Шта исписује следећи програм на програмском језику Јава? Уписати НП ако се програм не преводи.
class B {
public B() {
f();
}
void f(){
System.out.println(1);
}
}
class D extends B {
public D() {
f();
}
public void f(){
System.out.println(2);
}
}
public class Test {
public static void main(String[] args) {
new D();
}
}
Одговор: 22
Објашњење: Када оверриде-ујемо методе смемо проширити њихов приступ.
5. задатак
Која од следећих тврђења су тачна за програмски језик Јава?
- Класа мозе да проширује више основних класа у једном кораку извођења.
- Пример вишеструког наслеђивања представља класа која проширује другу класу и имплементира више интерфејса.
- Супертипове неке класе чине и интерфејси које та класа имплементира.
- Интерфејси омогућавају вишеструко наслеђивање у програмском језику Јава.
- Програмски језик Јава подржава проширивање (извођење) класа и интерфејса у више корака.
6. задатак
7. задатак
Која од следећих тврђења су тачна за програмски језик Јава?
- Позив метода
join()
без аргумената ће блокирати низ позиваоца док се нит за коју је метод позван не заврши. - Метод
join()
је дефинисан класи Тхреад. - Позив метода
notify()
за објекат нити из које је позван методjoin()
ће блокирати нит позваног објекта. - Метод
join()
баца проверени изузетак ИнтерруптедЕxцептион. - Метод
join()
мора да се позове из синхронизованог кода иначе ће бити бачен изузетак ИллегалМониторСтатеЕxцептион.
8. задатак
9. задатак
За сваки од следећих врста .НЕТ склопова навести тип (екстензију фајла).
- Библиотека за динамичко повезивање .длл [1]
- Модул за статичко повезивање .нетмодуле
10. задатак
Шта исписује следећи програм на програмском језику C#? (За програм који се не преводи унети НП. За програм са грешком у извршавању унети X)
class Program {
void M1(ref int i) { System.Console.Write(1); }
void M2(ref int i) { System.Console.Write(2); }
void M3(ref int i) { System.Console.Write(3); }
public delegate void Delegat();
public static void Main(string[] args) {
Delegat d1 = new Delegat(M1);
Delegat d2 = new Delegat(M2);
Delegat d3 = new Delegat(M3);
Delegat d = d1 + d2 + d3;
d += d1 - d2 + d3;
d();
}
}
Одговор: НП
Напомене
- ↑ Било је понуђено више одговора.