ОО2/К1 2024 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Нема описа измене
 
(Није приказано 8 међуизмена 2 корисника)
Ред 67: Ред 67:
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution">Object o = b2</span>
# <span class="solution"><code>Object o = b2</code></span>
# m()
# <code>m()</code>
# <span class="solution">B.s()</span>
# <span class="solution"><code>B.s()</code></span>
# Object o = b1
# <code>Object o = b1</code>
# b1.m()
# <code>b1.m()</code>
</div>
</div>


Ред 83: Ред 83:
# Klase u paketu mogu da imaju samo privatno ili javno pravo pristupa.
# Klase u paketu mogu da imaju samo privatno ili javno pravo pristupa.
# <span class="solution">Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa biće smešteni u bezimeni paket.</span>
# <span class="solution">Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa biće smešteni u bezimeni paket.</span>
# <span class="solution">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;.</span>
# <span class="solution">Deklaracija paketa <code>package a.b;</code> može da postoji čak i ako ni u jednom fajlu sa izvornim kodom programa ne postoji deklaracija paketa <code>package a;</code>.</span>
# Paket java.util se uvozi implicitno.
# Paket <code>java.util</code> se uvozi implicitno.
# Podrazumevano pravo pristupa metodima je paketsko, a poljima klasa privatno.
# Podrazumevano pravo pristupa metodima je paketsko, a poljima klasa privatno.
</div>
</div>
Ред 135: Ред 135:
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <div class="solution">
# <span class="solution"><code>B b = new B(); b.pi = 1;</code></span>
B b = new B();
# <span class="solution"><code>pi = 1</code></span>
b.pi = 1;
# <span class="solution"><code>super.pi = 1</code></span>
</div>
# <code>C c = new C(); c.pi = 1;</code>
# <span class="solution">pi = 1</span>
# <code>A a = new A(); a.pi = 1;</code>
# <span class="solution">super.pi = 1</span>
# <div class="solution">
C c = new C();
c.pi = 1;
</div>
# <div class="solution">
A a = new A();
a.pi = 1;
</div>
</div>
</div>
Objašnjenje: <span class="spoiler" data-solution="explanation">Prava pristupa za reference na objekte koji nisu ''this'' je ista za sve klase</span>
Objašnjenje: <span class="spoiler" data-solution="explanation">Prava pristupa za reference na objekte koji nisu ''this'' je ista za sve klase</span>
Ред 155: Ред 146:
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:
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:
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# protected X clone () {...}
# <code>protected X clone () {...}</code>
# <span class="solution">public X clone() {...}</span>
# <span class="solution"><code>public X clone() {...}</code></span>
# protected X clone () throws CloneNotSupportedException {...}
# <code>protected X clone () throws CloneNotSupportedException {...}</code>
# public X clone () throws CloneNotSupportedException {...}
# <code>public X clone () throws CloneNotSupportedException {...}</code>
</div>
</div>


[[Категорија:Рокови]]
[[Категорија:Рокови]]
[[Категорија:OO2]]
[[Категорија:ОО2]]

Тренутна верзија на датум 28. април 2024. у 21:18

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 {...}