Java < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:49 Sa 29.04.2006 | Autor: | Tio |
Hallo,
inv1.getOutput.setValue = !(inv1.getInput(0).getValue);
FEhlermeldung: cannot find symbol.
Zur ERklärung:
inv1 gehört zu einer Nand Klasse. Die Funktion getOutput ist Teil der Nandklasse und liefert einen Wert vom Typ Signal. Signal ist widerum eine eigene Klasse und beinhaltet die Funktion setValue mit welcher einen booleanwert besetzt wird.
inv1.getInput liefert eine Variable vom Typ Signal. In der Klasse Signal gibt es eine getValue Funktion, welche einen booleanwert liefert. Dieses möchte ich dann negieren.
Nun versteh ich nicht, wieso ich das so nicht in einer Zeile schreiben kann? Muß ich mir erst die Signalvariable einzeln holen und speichern, um dann daraus den booleanwert zu holen. Aber wie bekomme ich dann diesen wert in die richtige Signalvariable herrein?
Anhang 1 und 2 sind die zwei genannten Klassen. In Anhang 3 findet in Zeile 134 der fehlerhafte Aufruf statt.
Ich freue mich über jede Hilfe.
Tschau, schönes Wochenende
PS:Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Dateianhänge: Anhang Nr. 1 (Typ: class) [nicht öffentlich] Anhang Nr. 2 (Typ: class) [nicht öffentlich] Anhang Nr. 3 (Typ: class) [nicht öffentlich]
|
|
|
|
das ist schon ein komischer java aufruf ( ich bin es halt gewohnt private attribute zu definieren )
inv1.getOutput.setValue = !(inv1.getInput(0).getValue);
ich weiß nicht ob du absichtlich public attribute verwendest, weil sonst wäre der fehler ja klar ( zB. getValue() )...
Um dir wirklich helfen zu können, wäre es besser, könnstest du den source code als .java dateien senden!
mfg stovi0040
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:51 Sa 29.04.2006 | Autor: | Tio |
Danke stovi0040 für deine schnelle Antwort. Das Problem hat sich geklärt. Der erste Fehler waren die Klammern. Außerdem hatte ich noch einen logischen Fehler drinnen, der sich in einer falschen Syntax niedergelegt hatte.
Lösung:
inv1.getOutput().setValue(!(inv1.getInput(0).getValue()));
Das die ganzen Funktionen als Public deklariert waren, hat schon seine Richtigkeit.
Ich wünsche noch ein schönes verlängertes WE.
cu
|
|
|
|