ОО2/К2 2024

Извор: SI Wiki
< ОО2
Датум измене: 28. април 2024. у 14:06; аутор: KockaAdmiralac (разговор | доприноси) (KockaAdmiralac преместио је страницу OO2/K2 2024 на ОО2/К2 2024 без остављања преусмерења: Čirilica)
Пређи на навигацију Пређи на претрагу

К2 2024. године одржан је 26. априла и трајао је 20мин.

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

1. задатак

Овако изгледају задаци са одговорима понуђеним у падајућем менију.

  1. Могу да се дефинишу референце тог типа I апстрактна класа и интерфејс
  2. Подразумевано право приступа члановима је јавно Интерфејс
  3. Може да има заштићене чланове Апстрактна класа
  4. Може да има иницијализационе блокове Апстрактна класа
  5. Представља комбинацију уговора и делимичне имплементацијеI апстрактна класа и интерфејс

2. задатак

Који модификатор се ставља уз метод интерфејса за који желимо да напишемо подразумевану имплементацију са циљем да се избегне модификација постојећих имплементација интерфејса када је интерфејсу потребно додати нове методе

Одговор: дефаулт

3. задатак

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

  1. Објектима типа набрајања мемеорија се додељује на стеку
  2. Аргументи који се наводе уз симболичку константу у дефиницији типа набрајања су аргументи конструктора набрајања
  3. Тип набрајања може да дефинише методе
  4. Тип набрајања може да дефинише нестатичка поља
  5. Симболичке константе набрајањ представљају непроменљиве референце на објекте датог типа набрајања

4. задатак

На језику Јава, проверени изузетак може да се баци из:

  1. Статичког иницијализационог блока, ако сви конструктори наводе дати тип изузетка у својој тхроwс клаузули
  2. Метода која наводи дати тип изузетка у својој тхроwс клаузули
  3. Нестатичког иницијализационог блока, ако сви конструктори наводе дати тип изузетка у својој тхроwс клаузули
  4. Блока цатцх гране, ако метод у којем се грана налази наводи дати тип изузетка у својој тхроwс клаузули
  5. Конструктора који наводи дати тип изузетка у својој тхроwс клаузули

5. задатак

Шта све може да се напише уместо *** да би се програмски код успешно превео?

public class Spoljasnja {
    private int x;
    public in y;
    class Unutrasnja {
        public void m() {
            ***
        }
    }
}
  1. super.y = 1
    
  2. x = 1
    
  3. y = 1
    
  4. Spoljasnja.this.y = 1
    
  5. this.y = 1
    

6. задатак

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

interface I {
    int m(int x, int y);
}
public class Main {
    public static void main(String[] args) {
        int x = 2, y = 5, z = 0;
        I[] niz = new I[] {
                (a, b) -> a+b,
                (a, b) -> a*b,
                (a, b) -> b-a
        };
        for(I i: niz) {
            z += i.m(x,y);
        }
        System.out.print(z);
    }
}

Одговор: 20 Објашњење: Корак где се прави неw I[] заправо иницијализује низ са 3 анонимне класе, где свака имплементира интерфејс I, а иза -> је дата имплементација метода м() из I. На крају се сабирају резултати све 3 операције с x и y

7. задатак

Који од наведених метода могу да баце ИнтерруптедЕxцептион?

  1. notify
    
  2. sleep
    
  3. join
    
  4. interrupt
    
  5. wait
    

Објашњење: ИнтерруптедЕxцептион бацају методе које на било који начин заустављају нит која их позива

8. задатак

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

  1. Могуће је да надјачани метод у изведеној класи не буде означен модификатором сyнцхронизед, иако је одговарајући метод у основној класи означен тим модификатором.
  2. Могуће је да у исто време једна нит приступи једном синхронизованом нестатичком методу објекта, а друга нит приступи другом синхронизованом нестатичком методу истог објекта.
  3. Могуће је да у исто време једна нит приступи једном синхронизованом нестатичком методу објекта, а друга нит приступи истом синхронизованом методу другог објекта исте класе.
  4. Могуће је да у исто време једна нит приступи синхронизованом статичком методу класе, а друга нит приступи синхронизованом нестатичком методу објекта исте те класе.
  5. Уколико нит не може да приступи синхронизованом методу неке класе оне прескаче тај метод и наставља са извршавањем.

9. задатак

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

  1. Могуће је да позвати метод нотифy() кад ниједна нит није блокирана.
  2. Приликом надјачавања метода нотифy() мора се надјачати и метод wаит() .
  3. Метод нотифy() може да се надјача само за класу која је означена као сyнцхронизед
  4. Приликом надјачавања метода нотифy() мора се надјачати и метод нотифyАлл() .
  5. Приликом позива метода нотифy() са извршавањем гарантовано наставља нит која је најдуже чекала

10. задатак

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

class Nit extends Thread {
    public void run() {
        System.out.println("3");
        for (int i = 0; i < 1000; i++);
        System.out.println("4");
    }
}
public class Main {
    public static void main(String[] args) {
        Nit nit = new Nit();
        nit.run();
        System.out.println("1");
        for(int i = 0; i < 1000; i++);
        System.out.println("2");
    }
}
  1. Дати програмски код исписује искључиво 1234
  2. Ниједан од понуђених одговора није тачан
  3. Могуће је више различитих исписа, при чему се 1 увек налази испред 2, а 3 увек испред 4
  4. Дати програмски код се не преводи
  5. Дати програмски код исписује искључиво 3412

Објашњење: Функција рун() се позива секвенцијално, као и било која друга функција, па је редослед предодређен. Да би се над објектом направила нит, мора да се позове старт()