ОО2/К 2023

Извор: SI Wiki
< ОО2
Датум измене: 23. април 2023. у 19:35; аутор: Pop (разговор | доприноси) (Dodat 8. zadatak)
Пређи на навигацију Пређи на претрагу

Колоквијум 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!");
     }
}
  1. java Pozdrav
  2. java Pozdrav.java
  3. javac Pozdrav.java
  4. javac Pozdrav.class

2. zadatak

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

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

  1. goto је резервисана реч и не може се користити за име порменљиве.
  2. foreach је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.
  3. final је резервисана реч и не може се користити за име порменљиве.
  4. const је резервисана реч и не може се користити за име порменљиве.
  5. const је резервисана реч која може да се користи алтернативно са резервисаном речју final.

3. zadatak

Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику Java?

  1. (без модификатора, подразумевано) Члан је доступан само у коду датог пакета.
  2. private Члан је доступан само у класи у којој је дефенисан.
  3. public Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.
  4. protected Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.

4. zadatak

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

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

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

5. zadatak

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

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

  1. У неком фајлу са изворним кодом једног програма може да постоји декларација package p.sp; иако ни у једном фајлу истог програма не постоји декларација package p;
  2. Могуће је дефинисати тип А у пакету p уколико је истоимени тип већ дефинисан у пакету p.sp.
  3. Уколико постоје пакети p и p.sp увођењем свих чланова пакета p наредбом import p.*; уводе се и сви чланови пакета p.sp.
  4. Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (default) пакет.
  5. Могуће је приступити члану са пакетски правом приступа класе А дефинисане у пакету 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 навести да ли се преводи или не.

  1. public class Main {
        public static void f() {
            throw new Exception();
        }
        public static void main(String args[]) {
            f();
        }
    }
    
    Не преводи се
  2. public class Main {
        public static void f() {
            throw new Exception();
        }
        public static void main(String args[]) {
            try {
                f();
            } catch (Exception e) {}
        }
    }
    
    Не преводи се
  3. public class Main {
        public static void main(String args[]) {
            try {
                throw new Exception();
            } catch (Exception e) {}
        }
    }
    
    Преводи се

9. zadatak

Које дефиниције угњеждених типова на језику Java су исправне?

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

  1. static class C {}
  2. abstract class C {}
  3. local class C {}
  4. class C {}
  5. final class C {}
  6. static interface I {}
  7. annonymous class {}
  8. interface I {}

10. zadatak

Шта може да стоји уместо ### да би следећи код написан на језику Java успешно превео?

interface I {
    int f(int a);
}

public class Test {
    public static void main(String args[]) {
        int b = 3;
        ###
    }
}
  1. I c = (double a) -> a + b;
    
  2. I c = (int a) -> a + b;
    
  3. I c = (int a) -> {a*a; return a;}
    
  4. I c = (int a) -> {b--; return a + b;}
    
  5. I c = (int a) -> { double r = a + b; return r;}