Das hab ich geschrieben jedoch finde ich, es passt nicht. Könnt ihr helfen?
Java:
publicclassSchalter{// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren VariablenbooleanEin;boolean einschalten;publicbooleanistEin(){boolean einschalten=false;if(einschalten=true){returnEin=true;}else{returnEin=false;}}publicvoideinschalten(){Ein=true;}publicvoidausschalten(){Ein=false;}}
classSchalter{privateboolean schalterState;publicSchalter(){
schalterState =true;//true => Schalter ist an}publicvoidistEin(){return schalterState;// liefert den aktuellen Status}publicvoideinschalten(){
schalterState =true;//Schalter wird angemacht}publicvoidausschalten(){
schalterState =false;//Schalter wird ausgemacht}publicvoidschalten(){
schalterState =!schalterState;// umschalten -> nicht gefordert, nur so :)}}
classSchalter{privateboolean schalterState;publicSchalter(){
schalterState =true;//true => Schalter ist an}publicvoidistEin(){return schalterState;// liefert den aktuellen Status}publicvoideinschalten(){
schalterState =true;//Schalter wird angemacht}publicvoidausschalten(){
schalterState =false;//Schalter wird ausgemacht}publicvoidschalten(){
schalterState =!schalterState;// umschalten -> nicht gefordert, nur so :)}}
Die istEin Methode ist bei dir aber nicht nach seinen Angaben Die soll ja nur true zurückgeben, wenn der Schalter auch wirklich an ist. Außer er frägt sie danach separat ab *pfeif*
@truchn3000 ungeachtet der Kommentare von @Creepaz und @Phash, die bereits alles zur Frage beinhalten, noch zwei Hinweise:
bitte verwende im Editor Code-Tags ([code=Java]Dein Code[/code] bzw. im Editor auf die drei Pünktchen neben dem Smiley in der Toolback klicken, dann Code auswählen). Dann wird Dein Code schön formatiert angezeigt (s. die Beispiele der beiden).
in Java gibt es Benennungskonventionen, die Du Dir am besten frühzeitig angewöhnst - das erleichtert das Lesen von Code ungemein: Namen von Variablen, Methoden und Parametern schreibt man in lowerCamelCase, Bezeichner für Typen (Klassen etc.) in UpperCamelCase. Die Variable würde also nicht Ein sondern ein geschrieben.
Deine erste Variante dürfte nicht kompilieren, weil der istEin()-Methode ein "return" fehlt, falls der if-Zweig nicht zutrifft. Irgend was muss schließlich zurückgegeben werden.
publicclassSchalter{// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren VariablenbooleanEin;//variablennamen klein schreiben (besser wäre auch auch istAn und nicht ein, denn ein Schalter ist an oder aus und nicht ein oder ausboolean einschalten;//unpassender Variablenname, einschalten ist ein Verb, boolen ist ein ZustandpublicbooleanistEin(){boolean einschalten=false;//hier setzt du die variable auf false, deine if Abfrage wird immer in den else reingehenif(einschalten=true){// wenn du das so machen willst, dann muss es (einschalten == true) heißen, sonst weist du der Variable einen wert zu, da es aber bereits ein boolean ist, reicht ein if (einschalten){...}returnEin=true;//hier darfst du keine Zuweisung machen. Entweder "ein = true; return ein" oder "return true". Die erste Möglichkeit ist wahrscheinlich die, die du haben willst, da du den Zustand des Schalters als Variable speicherst}else{returnEin=false;// siehe vorheriger kommentar}}publicvoideinschalten(){Ein=true;}publicvoidausschalten(){Ein=false;}}
Da dir alle die anderen tolle Lösungen präsentiert haben, damit du ja dein Köpfchen nicht anstrengst, möchte ich dich einfach auf deine Programmierfehler hinweisen, demit du weiß, was du falsch gemacht hast, siehe Kommentare im Quellcode