OOP Hilfe bei Code-Schnipsel

Flexxi

Mitglied
Hiho

könnte mir bitte jemand dieses Stückchen Code erklären, also wie es funktioniert:

((Nand)GatterListe.get(IndexI)).SignalWeitergeben();

Weiter Erläuterung:
Es gibt 2 Kalssen "Nand" und "Signal". Der Code ist aus Signal.

Meine bischerigen überlegungen:
GatterListe ist in Signal als array initialisiert und get(IndexI) gibt einen Wert daraus zurück. richtig?
Dann vermute ich mal das "((Nand)GatterListe.get(IndexI))" sich irgentwie auf eine Instanz von "Nand" bezieht. Oder? Wenn ja, würde ich sagen, das der Code im Grunde nur SignalWeitergeben(), in einer Instanz von Nand aufruft, deren "Name" sich in dem arry "Gatterliste" befindet. richtig?

Wenn meine Überlegungen richtig sein sollten, würde es mir reichen, wenn mir jemand nur erklärt wie der Code funktioniert:
"((Nand)GatterListe.get(IndexI))"

Vielen Dank 🙂
 
GatterListe ist irgendeine Datenstruktur, die zu einem IndexI-Objekt ein Nand-Objekt zurückliefert. Auf das Nand-Objekt wird dann SignalWeitergeben() aufgerufen.

Du kannst auch unter anderem mit, oder einem Debugger

Java:
System.out.println(GatterListe.get(IndexI).getClass().getName());

sehen, welche Klasse die Objekte haben, die in GatterListe sind.
 
Hört sich soweit ganz korrekt an, nur das GatterListe wohl eher eine Liste als ein Array ist. Diese gibt irgendeinen Obertypen von Nand zurück (evtl. einfach Object) daher muss dann vor Verwendung der Nand spezifischen Methode SignalWeitergeben noch auf Nand gecastet werden. Sonst wüsste der Compiler nicht, dass es diese Methode gibt.
 
[c]GatterListe.get(IndexI)[/c] gibt ein Objekt zurück. Dieses Objekt wird auf den Typ [c]Nand[/c] gecastet. Warum das Casten erforderlich ist, kann man hier nicht beantworten (zuwenig Infos über den Code).
Die Nand-Klasse verfügt über die Methode [c]SignalWeitergeben()[/c]. Diese Methode wird für das Objekt ausgeführt, das mit
[c]get(IndexI)[/c] geholt wurde.

Aber du solltest auf die Schreibweise achten. Konvention: Methoden und Variablen sollten mit Kleinbuchstaben beginnen.
 
Zuletzt bearbeitet:
Naja, die GatterListe ist halt nicht parametrisiert, darum mußt Du casten. Ich will mal hoffen, das das keine gemischte Liste ist 😉
 
Danke für die vielen Antworten.
Ich glaube ich habe es verstanden.

Aber ich habe noch eine Frage:
Wie kann ich aus einem Wert einer Varibale eine Objekt machen?

Nicht so:
Person max = new Person();

sondern:

String name = "Max";
Person name = new Person();

Am Ende soll es ein neues Objekt/Person Max geben.

Danke
 
Java:
String name = "Max";
Person name = new Person();
ist aber leider kein gültiger Java Code (da Variable name zwei mal deklariert). Was soll dieser Code bezwecken? Du solltest auf alle Fälle SlaterB's Link lesen.
 
Gemeint ist das z.B. so:
Der Wert "Max" der unter der Variable "name" gespeichert ist, soll als Name(oder Reverenz?) für das Objekt "Max" dienen.

Aber laut dem Link, scheint es unter java nicht zu gehen, außer mit "maps". Oder?
 

Neue Themen


Zurück
Oben