OO2/K 2022

Izvor: SI Wiki
< ОО2
Datum izmene: 9. februar 2023. u 02:38; autor: KockaAdmiralac (razgovor | doprinosi) (Formatiranje i ispravke)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Kolokvijum 2022. godine na RTI (i ostalim ER odsecima) održan je 17. arpila. Od oblasti došli su uvod, pregled, klase, paketi, izvođenje, interfejsi, izuzeci i ugnježdeni tipovi na programskom jeziku Java.

  • Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni
  • Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni, tako da se prikažu kada izaberete taj tekst (primer: ovako)
  • Pritisnite levo dugme ispod za sakrivanje i otkrivanje svih odgovora, ili desno dugme za uključivanje i isključivanje interaktivnog režima:

1. zadatak

Koja od sledećih tvrđenja su tačna? (JDK = Java Development Kit, JRE = Java Runtime Environment, JVM = Java Virtual Machine)

  1. JDK je sastavni deo JVM
  2. JVM je sastavni deo JRE
  3. JRE je sastavni deo JDK
  4. JRE je sastavni deo JVM
  5. JDK je sastavni deo JRE

2. zadatak

Šta ispisuje sledeći programski kod na jeziku Java? Za program koji ne se prevodi uneti -1. Za program sa greškom u izvršavanju uneti -2.

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

Odgovor: 210

3. zadatak

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

  1. Telo konstruktora se izvršava pre inicijalizacije nestatičkih polja (atributa) objekata.
  2. Moguće je definisati konstruktor sa više parametara
  3. Automatski ugrađen (implicitni) konstruktor javne klase je javan.
  4. Moguće je definisati konstruktor bez parametara
  5. Moguće je specificirati tip povratne vrednosti (tip rezultata) konstruktora

4. zadatak

Dat je sledeći deo koda na programskom jeziku Java.

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

Koja od sledećih tvrđenja su tačna?

Izabrati jedan ili više odgovora:

  1. Naredbom B b3; se stvara objekat klase B.
  2. Tek po stvaranju objekta klase B polje b2 dobija vrednost null.
  3. Po stvaranju objekta klase B polje b1 dobija vrednost null.
  4. Programski kod se ne prevodi, jer klasa B ne može da ima definisano polje sopstvenog tipa.
  5. Promenljiva b3 tipa B nije inicijalizovana.

5. zadatak

Koje tvrdnje su tačne za pakete na programskom jeziku Java?

  1. Moguće je da kod jednog paketa bude raspoređen u više datoteka.
  2. Ukoliko paket A i paket B sadrže ime tipa X moguće je u istu datoteku uvesti sve tipove iz paketa A i sve tipove iz paketa B naredbama import A.*; import B.*;.
  3. U jednoj datoteci može da bude definisano više klasa koje pripadaju različitim paketima.
  4. Paketi se koriste za grupsianje logički povezanih interfejsa i klasa.
  5. Paket java.lang se uvozi implicitno.

6. zadatak

Koje od sledećih tvrdnji su tačne za programski jezik Java?

  1. Mogu da se stvaraju objekti klase označeni modifikatorom final.
  2. Svi članovi klase koja je označena modifikatorom final implicitno postaju final.
  3. Ako se svi metodi klase označe modifikatorom final, to je potpuno isto kao da je klasa označena modifikatorom final.
  4. Klasa java.lang.Object je označena modifikatorom final.
  5. Klasa može da bude označena modifikatorom final čime se proglašava konačnom i sprečava njeno proširivanje.

7. zadatak

Kojim programskim kodom se može zameniti deo koda označen sa ### da bi se dati izborni kod napisan na programskom jeziku Java uspešno preveo?

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. zadatak

Šta ispisuje sledeći programski kod na jeziku Java? Upisati 0 ako se kod ne prevodi.

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();
    }
}

Odgovor: X.m()

9. zadatak

Koje od sledećih tvrdnji su tačne za programski jezik Java?

  1. Izuzeci na jeziku Java su isključivo objekti klasnih tipova.
  2. Objekti klase Throwable sadrže nisku koja služi da se njom opiše odgovarajuća izuzetna situacija.
  3. Izuzeci na jeziku Java mogu da budu primitivnih tipova.
  4. Svi tipovi izuzetaka moraju da budu izvedeni iz klase Exception ili njenih potklasa.
  5. Svi tipovi izuzetaka moraju da budu iz klase Throwable ili njenih potklasa.

10. zadatak

Koje od sledećih tvrdnji su tačne za programski jezik Java?

  1. U definiciji cilja lambda izraza koristi se funkcijski interfejs.
  2. Lambda izraz opisuje telo metoda automatski generisane anonimne klase koja implementira interfejs koje deklariše isključivo jedna apstraktna metoda.
  3. Lamdba izraz opisuje telo metoda automatski generisane anonimne klase koja proširuje apstraktnu klasu koja deklariše isključivo jedan apstraktni metod.
  4. Na mestu definisanja lambda izraza vrši se njegovo izračinavanje.
  5. Automatski generisana anonimna klasa lambda izraza implicitno proširuje klasu java.lang.Lambda.