Czesc wszystkim, ponieważ dopiero co się uczę tego potężnego jezyka bardzo bym prosił o sprawdzenie mi ćwiczenia ktore miałem zrobić. (w razie wykrycia błędu - jest na pewno, bardzo proszę nie tylko o poprawę ale i wytłumaczenie) Oto treść zadania
a) stwórz interfejs U z 3 metodami
b) stwórz klasę A z metodą produkującą referencję do U poprzez wewnętrzną klasę anonimową
c) stwórz klasę B z tablicą U
d) B ma metodę akceptującą i przechowującą referencję do U
e) metodę ustawiająca referencję do A (podaną jako argument) na null
f) metodę przechodzącą przez tablicę i wywołującą metody U
g) main - stworzyć grupę obiektów A i jeden obiekt B, wypełnij B referencjami typu U wyprodukowanymi przez obiekty A, B wywołuje obiekty A poprzez wywołanie zwrotne. Oto mój kod
//a
interface U{
public void one();
public void two();
public void three();
}
b)
class Aclass implements U{
public void one() { System.out.println("1"); }
public void two(){ System.out.println("2"); }
public void three(){ System.out.println("3"); }
U makeU(){
return new U() {
public void one() { System.out.println("1"); }
public void two(){ System.out.println("2"); }
public void three(){ System.out.println("3"); }
};
}
}
public class Bclass{
private U[] tab; //c
private int next = 0;
public Bclass(int size){
tab = new U[size];
}
public void methodOne(U size){ //d
if(next < tab.length){
tab[next++] = size;
}
}
public void methodTwo(){ //f
for(int i = 0; i < tab.length; i++){
tab[i].one();
tab[i].two();
tab[i].three();
}
}
public void methodThree(Aclass a){ //e
a = null;
}
public static void main(String[] args){
//g???? program podczas debugowania wywala się po pierwszym przejsciu przez methodTwo
zgłaszając wyjątek NullPointer
Aclass obiektA = new Aclass();
Bclass b = new Bclass(2);
b.methodOne(obiektA.makeU());
b.methodTwo();
b.methodThree(obiektA);
}
}
dzieki z góry za pomoc, mam nadzieje że ktoś poświęci na to chwile