Grundlegende Objektfrage

wyldstyle

Aktives Mitglied
Hallo, ich hätte mal eine grundlegende Frage zu Objekten bzw. wo bei mir gedanklich grad der Wurm drin ist.

Nehmen wir an ich habe 4 Klassen: Execute, A,B,C

Code:
public static void main...
A a = new A();
B b = new B();
->Ich erzeuge zwei Objekte a,b.

Angenommen klasse A hätte eine Methode go(), wieso kann ich dann jetzt nicht in Klasse B Befehle ala a.go(); nutzen? das a objekt wurde doch schon erzeugt, wieso kann ich da nicht drauf zugreifen?
 
S

SlaterB

Gast
ob Objekte erzeugt wurden oder nicht ist nicht alles, man muss auch Zugriff/ Sichtbarkeit darauf haben,

was nützt einem Gefängnisinsassen, wenn der Wärter im Nachbarraum einen Schlüssel auf dem Tisch bereit legt?
der Schlüssel muss schon in Armreichweite des Knastis gelangen,
oder hier das A-Objekt B im Konstruktor als Parameter übergeben werden
 

bandy

Bekanntes Mitglied
A und B sind verschiedene Baustellen, verstehst es?:D

wenn z.B.
Java:
class A{
public void methode(){
System.out.println("Ich gehoere zu A.");
}
}

class B extends A{

}

Dann erbt A von B

und in main()

Java:
A A=new A();
A.methode();
B B=new B();
B.methode();

Durch extends hat B von A geerbt und hat selbe Methode wie A, wenn diese in main() in B aufrufst, bekommst selbe noch mal.
 
B

bygones

Gast
nur glaub ich waere Vererbung hier voellig falsch erstmal... die Gefahr besteht dass der Threadersteller nun erstmal alle seine Probleme mit Vererbung loest.

B muss eine Referenz von A halten - nennt sich Composition und ist Vererbung (nahezu) immer vorzuziehen !
 

dayaftereh

Top Contributor
Schau dir mal das Stuck Code an: Ein Beispiel wie man die Referenz von A an B übergibt!

Java:
	public class A {
		
		public void methode() {
			System.out.println("Ich gehoere zu A.");
		}
	}

	public class B {
		
		public B(A a) {
			a.methode();
		}

	}
	
	public static void main(String[] args) {
		
		A a = new A();
		B b = new B(a);
		
	}
 

Ähnliche Java Themen

Neue Themen


Oben