Cześc,
Chciałbym dobrze zrozumieć procesy związane z dostępem do obiektów innych klas. Temat wydaje się prosty, ale zawsze mam wrażenie, że czegoś nie wiem.
Spójrzmy na przykład poniżej. Mam klasę Green i klasę Blue, która dziedziczy po klasie Green. W metodzie "metoda1" mam po jednym zainicjalizowanym obiekcie obu klas. Zadeklarowana jest także metoda getGreen() zwracająca obiekt green. To co chcę tutaj zrobić to uzyskać dostęp do obiektu green przez klasę Blue. Kod poniżej ma wypisać dwie linijki z adresem obiektu green, bezpośrednio z klady Green a następnie z klasy Blue poprzez wywołanie metody getGreen(). Mógłby mi ktoś wytłumaczyć dlaczego po kompilacji druga linijka zwraca null? Co powoduje, że getGreen() wywołana w klasie Blue zwraca jedynie pustą zmienną green?
Czy jest możliwe korzystanie z obiektu green przez klasę Blue bez przesyłania go jako argumentu do metody w klasie Blue? Byłbym również bardzo wdzięczny za polecenie dobrych materiałów, które dobrze opisują tego typu problemy.
public class Green {
private Green green;
private Blue blue;
public void metoda1() {
green = new Green();
blue = new Blue();
System.out.println(getGreen());
blue.metoda2();
}
public Green getGreen() {
return green;
}
public static void main(String[] args) {
Green obj = new Green();
obj.metoda1();
}}
public class Blue extends Green {
public void metoda2() {
System.out.println(getGreen());
}
}