Witam
-
Ile może być klas używających metody paint(Graphics g) {} Jeśli wiele, jak jej użyć odwołując się do innej klasy?
-
Ile JPaneli może zostać dołączonych do JFrame?
-
Jak w klasie XYZ użyć zmiennej z klasy głównej?
Pozdrawiam :)
W konstruktorze klasy XYZ, wywoływane przy tworzeniu z klasy głównej (tutaj A) przez np. XYZ obiektKlasyXYZ = new XYZ(this);
class A {
int a = 5;
}
class XYZ {
A obiekt;
public XYZ (A obiekt) {
this.obiekt = obiekt;
}
void jakasMetoda () {
System.out.println(obiekt.a); //da Output: 5
}
}
Z tym, że tutaj XYZ nie dziedziczy po A.
Co do 3. jeśli masz np.:
public A {
public int cos;
}
// ...
public B extends A { // B dziedziczy po A
public void wypiszCos() {
System.out.println(cos); // wypisanie int cos z klasy bazowej
}
}
tutaj problemu nie ma.
Jeśli jednak klasa dziedzicząca nadpisuje jakieś pole tą samą nazwą:
public C extends A {
public int cos;
public void wypiszCosZC() {
System.out.println(cos); // wypisanie int cos z klasy C
}
public void wypiszCosZA() {
System.out.println(super.cos); // wypisanie int cos z klasy A
}
}
musimy, jak widać na przykładzie, użyć słowa kluczowego super (taka referencja do klasy bazowej). To samo jest z metodami.
A a = new A();
B b = new B();
C c = new C();
c.cos = 666;
b.wypiszCos(); // wypisze 0;
c.wypiszCosZA(); // wypisze 0;
c.wypiszCosZC(); // wypisze 666;
@up:
zgadza się, ja tylko odpisywałem na pytanie 'Jak przekazać referencje klasy głównej?'.
Zauważmy jednak, że przy takim schemacie, jak podałes (przy dziedziczeniu), klasa B (która extenduje po A) ma tylko jakby 'model klasy A', a nie 'aktualne wartości zmiennych konkretnego, istniejącego obiektu typu A', myślę więc, że o to chodziło dudeskiemu (o możliwość manipulacji zmiennymi istniejącego obiektu klasy A z poziomu innego obiektu klasy B).
oj tam ;), wiesz o co chodzi ;) (mowa o ewentualnych 'przyszłych' zmianach w wartościach zmiennych obiektu A, następujących po stworzeniu obiektu B, wtedy dziedziczenie już nie wystarczy - bo dziedziczenie klasy to jedno, ale przyszłe 'życie' dwóch obiektów, które nie jest już zależne od drugiego, to co innego ;) ).
Śmię twierdzić, że dudeskiemu nie chodziło obiekt zawierany w B ;D
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.