Wie Sie Zugriff auf ein Objekt übergeordnete Objekt in Java?
Haben Sie einen Blick auf dieses Beispiel:
class Parent{
Child child = new Child();
Random r = new Random();
}
class Child{
public Child(){
//access a method from Random r from here without creating a new Random()
}
}
Wie kann ich die Random-Objekts in das Untergeordnete Objekt?
- Du kippe?! Sie müssen einen Verweis auf Ihre Eltern in Ihr Kind zu tun. Aber es wäre keine gute Idee, weil Das Gesetz von Demeter.
- Es gibt kein solches Konzept, als "übergeordneten Objekt" in Java.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben die
Parent
Klasse pass eine eigene Instanz vonRandom
zu denChild
Klasse.Classic Occam ' s razor.
Kann es der Fall sein, dass, wenn nur Ihre
Parent
je Klasse erzeugt Instanzen vonChild
, für seine eigene interne Verwendung haben, dann könnten Sie innere Klassen, etwa so:Gibt es andere Gründe, warum Sie verwenden möchten, können innere Klassen. Aber ich bin zögerlich zu empfehlen, da erfordert den Zugriff auf eine andere Klasse-Instanz-Variablen ist in der Regel nicht eine gute Praxis.
Zunächst dein Beispiel nicht zeigen, Eltern-Kind-Beziehung in java.
Nur eine Klasse mit einer anderen Art Referenz.
in diesem Fall können Sie nur tun, new Parent().r //abhängig von r ist die Sichtbarkeit.
oder Sie können übergeben, die Parent-Referenz auf das Kind (durch die änderung des Kindes-Konstruktor).
In der tatsächlichen erbschaft, die Sie nicht brauchen, um alles tun, die super-Klasse-Mitglieder vererbt werden, durch Verlängerung der Klassen. (wieder erhältlich in der Kind-Klasse basiert auf deren Sichtbarkeit)
mehr unter : http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
Ja, Wenn es statische Methode , die Sie tun können, dass (
Random.methodName()
).Ob es eine Instanz-Methode, Eine große Noooooo. Sie müssen auf jeden Fall
Random
Instanz.