ОО2/К1 2024

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

K1 2024. godine održan je 22. marta i trajao je 20min.

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

1. zadatak

Šta je sve tačno za programski jezik Java?

  1. Interpretiranje bajtokoda je slabijih performansi od izvršavanja mašinskog koda.
  2. Java virtuelna mašina predstavlja interpreter za bajtkod.
  3. Prevođenjem izvornog koda dobije se interpretativni bajtkod.
  4. Implementacija Javine virtuelne mašine je nezavisna od platforme.
  5. Bajtkod zavisi od platforme na kojoj se vrši prevođenje izvornog koda.

2. zadatak

Koje od navedenih implicitnih konverzija su dozvoljene u programskom jeziku Java?

  1. Konverzija podataka tipa byte u tip int
  2. Konverzija podataka tipa int u tip long
  3. Konverzija podataka tipa int u tip short
  4. Konverzija podataka tipa float u tip double
  5. Konverzija podataka tipa double u tip float

3. zadatak

Šta ispisuje sledeći program na programskom jeziku Java?

public class Main {
    private static void f(Object a, Integer b, int c) {
        a = 0;
        b = b + 1;
        c = c - 1;
    }
    public static void main(String[] args) {
        Integer a = 1, b = 1, c = 1;
        f(a, b, c);
        System.out.println(a + "," + b + "," + c);
    }
}

Odgovor: 1,1,1

Objašnjenje: U Javi se argumenti, uključujući reference prenose po vrednosti. Tako da su u metodi f kopije referenci na a i b dobile nove vrednosti, ali ne i same reference a i b

4. zadatak

Šta sve mogu da sadrže klase na programskom jeziku Java?

  1. Deskruktore
  2. Preklopljene operatorske funkcije
  3. Definicije interfejsa
  4. Inicijalizacione blokove
  5. Definicije klasnih tipova

5. zadatak

Šta sve može da stoji umesto ### da bi se sledeći kod uspešno pisan na jeziku Java uspešno preveo?

class B {
    B b1;
    static B b2;
    public static void s() {}
    public void m() {}
    public static void test() {
        ###
    }
}
  1. Object o = b2
  2. m()
  3. B.s()
  4. Object o = b1
  5. b1.m()

6. zadatak

Napisati naredbu na jeziku Java kojom se uvoze svi tipovi iz paketa paket Odgovor: import paket.*;

7. zadatak

Koje od sledećih tvrdnji su tačne za pakete na programskom jeziku Java?

  1. Klase u paketu mogu da imaju samo privatno ili javno pravo pristupa.
  2. Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa biće smešteni u bezimeni paket.
  3. Deklaracija paketa package a.b; može da postoji čak i ako ni u jednom fajlu sa izvornim kodom programa ne postoji deklaracija paketa package a;.
  4. Paket java.util se uvozi implicitno.
  5. Podrazumevano pravo pristupa metodima je paketsko, a poljima klasa privatno.

8. zadatak

Šta ispisuje sledeći program na programskom jeziku Java?Upisati NP ukoliko se program ne prevodi.

package test;
class B {
    public void m(D x) {
        System.out.print(1);
    }
}
class D extends B {
    public void m(D x) {
        System.out.print(2);
    }
}
public class Test {
    public static void main(String[] args) {
        B b = new B();
        b.m(new D());
        b = new D();
        b.m(new D());
    }
}

Odgovor: 12

Objašnjenje: Kod poziva metoda se gleda tip objekta, ne tip reference

9. zadatak

Šta ispisuje sledeći program na programskom jeziku Java?Upisati NP ukoliko se program ne prevodi.

package p;
public class A {
    protected int pi;
}
package q;
import p.A;
public class B extends A {
    public void m() {
        ###
    }
}
package q;
public class C extends A {}
  1. B b = new B(); b.pi = 1;
  2. pi = 1
  3. super.pi = 1
  4. C c = new C(); c.pi = 1;
  5. A a = new A(); a.pi = 1;

Objašnjenje: Prava pristupa za reference na objekte koji nisu this je ista za sve klase

5. zadatak

Da bi klasa X bezuslovno podržala kloniranje i obezbedila da i izvedene klase iz nje moraju da podrže kloniranje, pored toga što treba da implementira interfejs Cloneable, potrebno je i da nadjača metod clone na način:

  1. protected X clone () {...}
  2. public X clone() {...}
  3. protected X clone () throws CloneNotSupportedException {...}
  4. public X clone () throws CloneNotSupportedException {...}