ОО2/К 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Колоквијум 2022. на РТИ (и осталим ЕР одсецима) одржан је 17. арпила. До области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.

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

1. задатак

Која од следећих тврђења су тачна? (JDK = Java Development Kit, JRE = Java Runtime Environment, JVM = Java Virtual Machine)

  1. JDK је саставни део JVM
  2. JVM је саставни део JRE
  3. JRE је саставни део JDK
  4. JRE је саставни део JVM
  5. JDK је саставни део JRE

2. задатак

Шта исписује следећи програмски код на језику Јава? За програм који не се преводи унети -1. За програм са грешком у извршавању унети -2.

public class Main {
     public static void main(String[] args) {
          int[] niz1 = new int[] {0, 1, 2};
          int[] niz2 = new int[niz1.lenght];
          int i = niz2.lenght;
          for(int x : niz1){
               niz2[--i]=x;
          }
          for(int x : niz2){
               System.out.print(x);
          }
     }
}

Одговор: 210

3. задатак

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

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

4. задатак

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

class B {
    B b1;
    static B b2;
    public void f() {
        B b3;  
    }
    public static void main(String args[]) {
        new B();
    }
}

Која од следећих тврђења су тачна?

Изабрати један или више одговора:

  1. Наредбом B b3; се ствара објекат класе B.
  2. Тек по стварању објекта класе B поље b2 добија вредност null.
  3. По стварању објекта класе B поље b1 добија вредност null.
  4. Програмски код се не преводи, јер класа B не може да има дефинисано поље сопственог типа.
  5. Променљива b3 типа B није иницијализована.

5. задатак

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

  1. Могуће је да код једног пакета буде распоређен у више датотека.
  2. Уколико пакет A и пакет B садрже име типа X могуће је у исту датотеку увести све типове из пакета A и све типове из пакета B наредбама import A.*; import B.*;.
  3. У једној датотеци може да буде дефинисано више класа које припадају различитим пакетима.
  4. Пакети се користе за групсиање логички повезаних интерфејса и класа.
  5. Пакет java.lang се увози имплицитно.

6. задатак

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

Изабрати један или више одговора:

  1. Могу да се стварају објекти класе означени модификатором final.
  2. Сви чланови класе која је означена модификатором final имплицитно постају final.
  3. Ако се сви методи класе означе модификатором final, то је потпуно исто као да је класа означена модификатором final.
  4. Класа java.lang.Object је означена модификатором final.
  5. Класа може да буде означена модификатором final чиме се проглашава коначном и спречава њено проширивање.

7. задатак

Којим програмским кодом се може заменити део кода означен са ### да би се дати изборни код написан на програмском језику Јава успешно превео?

class B{}
public class D extends B{
     public D() {
          ####
     }
     public static void main(String[] arg){}
}

Изаберите један или више одговора:

  1. super();
  2. Object o = super;
  3. String s = super.super.toString();
  4. B b = (B) super;
  5. String s = super.toString();

8. задатак

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

Interface A{ default void m(){System.out.println("A.m()");}}
Interface B{ default void m(){System.out.println("B.m()");}}
public class X implements A, B {
     public void m(){System.out.println("X.m()");}
     public static void main(String args[]) {
          X x = new X();
          x.m();
     }
}

Одговор: X.m()

9. задатак

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

Изаберите један или више одговора:

  1. Изузеци на језику Јава су искључиво објекти класних типова.
  2. Објекти класе Throwable садрже ниску која служи да се њом опише одговарајућа изузетна ситуација.
  3. Изузеци на језику Јава могу да буду примитивних типова.
  4. Сви типови изузетака морају да буду изведени из класе Exception или њених поткласа.
  5. Сви типови изузетака морају да буду из класе Throwable или њених поткласа.

10. задатак

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

Изаберите један или више одговора:

  1. У дефиницији циља ламбда израза користи се функцијски интерфејс.
  2. Ламбда израз описује тело метода аутоматски генерисане анонимне класе која имплементира интерфејс које декларише искључиво једна апстрактна метода.
  3. Ламдба израз описује тело метода аутоматски генерисане анонимне класе која проширује апстрактну класу која декларише искључиво један апстрактни метод.
  4. На месту дефинисања ламбда израза врши се његово израчинавање.
  5. Аутоматски генерисана анонимна класа ламбда израза имплицитно проширује класу java.lang.Lambda.