ОО2/Јун 2023
Јунски рок 2023. године одржан је 6. јуна у две групе. Прва група(СИ) у 11:30х и друга група(РТИ + остали одсеци) у 12:00х.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
Г1
1. задатак
Којом командом се следећи програмски код чији је преведени облик - бајткод - дат у фајлу "Поздрав.цласс" може извршити?
public class Pozdrav {
public static void main(String[] args) {
System.out.print("Zdravo!");
}
}
javac Pozdrav.class
java Pozdrav.exe
java Pozdrav
javac Pozdrav.exe
2. задатак
Шта исписује следећи програм на програмском језику Јава? Уписати НП ако се програм не преводи.
public class Test {
public Test() {
System.out.println(1);
}
{
System.out.println(2);
}
{
System.out.println(3);
}
static {
System.out.println(4);
}
public static void main(String[] args) {
new Test();
}
}
Одговор: 4231
Објашњење: Извршавају се прво статички блокови приликом попуњавања класе у меморију, затим нестатички блокови па тек онда конструктор класе.
3. задатак
Шта сме да стоји уместо #### да би се следећи изворни програм написан на програмском језику Јава успешно превео?
package prvi;
public class A {
private int a;
int b;
protected int c;
public int d;
}
package drugi;
public class B {
public static void main(String[] args) {
A obj = new A();
####
}
}
obj.b = 1;
obj.c = 1;
obj.d = 1;
obj.a = 1;
A.d = 1;
4. задатак
Које од следећих тврдњи су тачне за програмки језик Јава?
- Над методима означеним модификатором финал примењује се статичко везивање.
- Модификатор финал је део потписа метода.
- Надјачање (полиморфна редефиниција) метода наткласе у поткласи не може да буде означена модификатором финал.
- Метод означен модификатором финал спречава изведене класе да га редефинишу.
- Статички метод може да буде означен модификаторм финал.
5. задатак
Које од следећих тврдњи су тачне за програмски језик Јава?
- Класа наслеђује статичка коначна поља имплементираног интерфејса.
- Класа наслеђује подразумеване методе имплементираног интерфејса.
- Дозвољено је позвати статички метод м() интерфејса I из неког метода класе К која имплементира дати интерфејс I на начин К.м().
- Подразумеваном методу м() имплементираног интерфејса I, класа може да приступи из статичког метода директно и користећи нотацију I.супер.м().
- Класа мора да имплементира апстрактне методе имплементираног интерфејса или да буде проглашена апстрактном.
6. задатак
Која од следећих тврђења су тачна за програмски језик Јава?
- Сви типови изузетака су директно или индиректно изведени из класе Тхроwабле.
- Препорука је да се кориснички дефинисани типови изузетака изводе из класе Еxцептион.
- Препорука је да се кориснички дефинисани типови проверених изузетака изводе из класе РунтимеЕxцептион.
- Кориснички дефинисан тип изузетака директно изведен из класе Еxцептион представља проверени изузетак.
- Кориснички дефинисан тип изузетка директно изведен из класе Еррор представља проверени изузетак.
7. задатак
Спојити наведене описе метода са њиховим одговарајућим именима на програмском језику Јава?
- Нестатички метод који проверава статус прекида нити, али га не ресетује након провере.исИнтерруптед()
- Статички метод које проверава статус прекида нити након чега се ресетује статус прекида.интерруптед()
- Нестатички метод за постављање статуса прекида нити.интеррупт()
8. задатак
Које тврдње су тачне за програмирање графичког корисничког интерфејса помоћу АWТ пакета?
- Извор догађаја је потребно регистровати код одговарајућег ослушкивача (енг. листенер) догађаја.
- Тела руковалаца (енг. хандлер) адаптера је могуће написати као ламбда изразе.
- Класа АWТЕвент је директно изведена поткласа класе ЕвентОбјецт.
- Класа АWТЕвент је наткласа класа које се налазе у пакету јава.аwт.евент.
- Објекат класе АWТЕвент чува инфомацију о врсти догађаја, коју је могуће дохватити преко одговарајућег метода.
9. задатак
За сваки од следећих врста .НЕТ склопова (енг. ассемблy) навести тип (екстензију) фајла.
- Конзолни извршни .еxе
- Меморијски управљачки Не постоји
- Графички извршни .еxе
10. задатак
Шта исписује следећи програм на програмском језику C#? (За програм који се не преводи унети НП. За програм са грешком у извршавању унети X)
class Program {
static void M1() { System.Console.Write(1); }
static void M2() { System.Console.Write(2); }
static void M3() { 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();
}
}
Одговор: 12313
Г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. задатак
Спојити наведене типове изузетака на програмском језику Јава са одговарајућим исказом који најбоље описује њихову природу.
- РунтимеЕxцептион Представља класу непроверених изузетака чији се објекти могу бацати (емитовати) у току нормалног рада Јава виртуелне машине.
- Еррор Представља класу непроверених изузетака чији објекти описују озбиљне проблеме које апликација не би требало да хвата и обрађује а који воде до прекида рада програма.
- Тхроwабле Представља класу која се налази у корену хијерархије свих грешака и изузетака.
- Еxцептион Представља класу коју би кориснички дефинисани изузеци требало да проширују и чији објекти описују изузетне ситуације које би апликација требало да хвата и обрађује.
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();
}
}
Одговор: НП
Напомене
- ↑ Било је понуђено више одговора.