1. Klase A, B, C, D, E su u paketu P, i svaka klasa je napisana u 10. Pogrešna dodela između klasnih tipova posebnom fajlu. 11. Beskonačna rekurzija 12. Nedostaje this. zato što argument ima isto a) Ispred pogrešne linije u svakoj od klasa A, B, C, D, E ime kao i polje upisati broj greške sa spiska koja najbolje odgovara 13. Pogrešan tip rezultata metoda pogrešnoj liniji. Ako jednoj grešci odgovara više različitih 14. Pogrešan pristup podatku koji nije statički opisa greške, odabrati onaj koji najviše odgovara. 15. Pogrešan pristup podatku koji je statički Moguće je da u nekoj liniji postoji više od jedne greške. 16. Pogrešan pristup metodu koji nije statički Bodovanje: +3 za svaku otkrivenu grešku 17. Pogrešan pristup metodu koji je statički public abstract class A { 18. Pravi se objekat apstraktne klase private double a; 19. Nedefinisana promenljiva public A(A r) { a = r.a; } 20. Nedefinisana polje public A(double a) { this.a = a; } 21. Loše napisan kopirajući konstruktor public int ma() { return a; } 9 public abstract int mv(); } b) U telu metoda main klase M koja se nalazi u public class B extends A { paketu P obeležiti sve ispravne linije koda private int b; znakom “+” ispred linije, a neispravne znakom public B() { super(); } 1 “–”. Smatrati da su klase A, B, C, D, E public B(B o) {b=o.b; } 21 ispravno napisane i da svi članovi ovih klasa public B(int r) { super(b); b=r; } 7 koji se koriste u klasi M imaju specifikatore public int mb() { return b; } pristupa i tipove koji su navedeni. } Bodovi: +1 za tačno označenu liniju, public class C extends B { -1 za netačno označenu liniju protected int c; 0 za liniju za koju nije upisan znak private static int s; class M { public C() { } public static void main(String public C(C c) { super(c); c = c.c; } 12 a[]) { public C(int r) { c = r; } +A a0 = new C(); public int mv() { return c * mb(); } -C c0 = a0; public int msc() { this.c = s; } 15, 13 +E e0 = new E(4); public static int ms() { return c + s; }14 -C c1 = new C(e0); } -A a1 = new A(c1); public class D extends B { -A a2 = new E.a(); int d; +A a3 = b0; private B rb; -B b0 = new D(e0); public D() { rb = new C(1); } +D d0 = new E(e0); public D(int r) { d=r; rb = new B(); } -C c2 = new D(0); public double mv() { return d; } potpis -A a4 = new A(3); nije isti kao u natklasi -int m = e0.me(); public B rb() { return rb; } +double x = C.ms(); } -A a5 = b0.rb(); +E e1 = new E(d0.d); public class E extends D { -C c3 = new E(); private double e; -D d1 = D(); public E() { } -B b1 = new C(E.me()); public E(E r) { super(r); e = r.e; } 1 +B b2 = e1.rb(); public E(double r) { e = r; } +double y = c3.ma(); public void me() { e = C.mv(); } 16 -B b3 = D.rb(); } +D d2 = new E(c2.c); -E e2 = d2; Spisak mogućih grešaka: -int k = d2.rb(); } 1. Ne postoji odgovarajući konstruktor u natklasi } 2. Ne postoji odgovarajući konstruktor u klasi 3. Klasa nema kopirajući konstruktor 4. Implicitno se poziva nepostojeći podrazumevani konstruktor natklase 5. Pristupa se privatnom članu druge klase 6. Ne može se pristupiti članu sa zbog modifikatora pristupa 7. Polje objekta se koristi pre nego što je napravljeno 8. Nedostaje modifikator abstract 9. Ne postoji implicitna konverzija za upotrebljene vrednosne tipove