Schalter programmieren

Hi bin Anfänger,

undzwar muss ich das programmieren:
Schreiben Sie eine Klasse Schalter mit Konstruktor public Schalter () ,

der einen Schalter erstellt, der zu Beginn ausgeschaltet ist.

Schreiben Sie eine Methode

public boolean istEin () ,

die genau dann true zurückgibt, wenn der Schalter eingeschaltet ist.

Schreiben Sie weitere Methoden
public void einschalten () , public void ausschalten () ,

die den Schalter ein- bzw. ausschalten. (Das Ein- bzw. Ausschalten eines bereits ein- bzw. aus- geschalteten Schalters soll keine Auswirkung haben.)




Das hab ich geschrieben jedoch finde ich, es passt nicht. Könnt ihr helfen?

Java:
public class Schalter
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    boolean Ein;
    boolean einschalten;
    
    
public boolean istEin()
{
boolean einschalten=false;
if (einschalten=true){
return Ein=true;
}else{
return Ein=false;
    
}
}
  public void einschalten(){
      Ein= true;
      
      
    }
    public void ausschalten(){
    
    Ein=false;
}
  }
 
Zuletzt bearbeitet von einem Moderator:
Hi bin Anfänger,

undzwar muss ich das programmieren:
Schreiben Sie eine Klasse Schalter mit Konstruktor public Schalter () ,

der einen Schalter erstellt, der zu Beginn ausgeschaltet ist.

Schreiben Sie eine Methode

public boolean istEin () ,

die genau dann true zurückgibt, wenn der Schalter eingeschaltet ist.

Schreiben Sie weitere Methoden
public void einschalten () , public void ausschalten () ,

die den Schalter ein- bzw. ausschalten. (Das Ein- bzw. Ausschalten eines bereits ein- bzw. aus- geschalteten Schalters soll keine Auswirkung haben.)





Das hab ich geschrieben jedoch finde ich, es passt nicht. Könnt ihr helfen?

public class Schalter
{
// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
boolean Ein;
boolean einschalten;


public boolean istEin()
{
boolean einschalten=false;
if (einschalten=true){
return Ein=true;
}else{
return Ein=false;

}
}
public void einschalten(){
Ein= true;


}
public void ausschalten(){

Ein=false;
}
}
Schau dir die Grundlagen mal etwas genauer an. Ein return-Statement ist keine Variable die du true zuweisen kannst.

Return kann je nach Zuweisung verschiedene Dinge ausgeben. In deinem Fall muss return einen boolean zurückgeben, was dann so aussehen würde:

return true; // return false;

Hier mal ein Beispielcode, bin mir grad nicht sicher ob alles drin ist was du gesagt hattest, ist auf die schnelle nebenbei in der Arbeit gemacht.

Java:
class Schalter {
private boolean schalterState;

public Schalter() {
  schalterState = true; //true => Schalter ist an
}
public void istEin() {
  if(schalterState) { //wenn schalterState = true => Schalter ist an
   return true;
  }
}
public void istEin() {
  if(schalterState == false) { //wenn schalterState = false => Schalter ist aus
   return true;
  }
}
public void einschalten() {
  schalterState = true; //Schalter wird angemacht
}
public void ausschalten() {
  schalterState = false; //Schalter wird ausgemacht
}
}
Edit: Und das nächste mal bitte deinen Code in die Klammern schmeissen, ist um einiges übersichtlichter.
 
Java:
class Schalter {
    private boolean schalterState;

    public Schalter() {
      schalterState = true; //true => Schalter ist an
    }
    public void istEin() {
       return schalterState; // liefert den aktuellen Status
    }

    public void einschalten() {
      schalterState = true; //Schalter wird angemacht
    }
    public void ausschalten() {
      schalterState = false; //Schalter wird ausgemacht
    }
    
    public void schalten(){
        schalterState = !schalterState; // umschalten -> nicht gefordert, nur so :)
    }
}
leicht anders, aber sonst wie Creepaz
 
Java:
class Schalter {
    private boolean schalterState;

    public Schalter() {
      schalterState = true; //true => Schalter ist an
    }
    public void istEin() {
       return schalterState; // liefert den aktuellen Status
    }

    public void einschalten() {
      schalterState = true; //Schalter wird angemacht
    }
    public void ausschalten() {
      schalterState = false; //Schalter wird ausgemacht
    }
   
    public void schalten(){
        schalterState = !schalterState; // umschalten -> nicht gefordert, nur so :)
    }
}
leicht anders, aber sonst wie Creepaz
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:
  1. 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).
  2. 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.
 
Java:
public class Schalter
{
// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
boolean Ein; //variablennamen klein schreiben (besser wäre auch auch istAn und nicht ein, denn ein Schalter ist an oder aus und nicht ein oder aus

boolean einschalten; //unpassender Variablenname, einschalten ist ein Verb, boolen ist ein Zustand


public boolean istEin()
{
boolean einschalten=false; //hier setzt du die variable auf false, deine if Abfrage wird immer in den else reingehen
if (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){...}

return Ein=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{
return Ein=false; // siehe vorheriger kommentar

}
}
public void einschalten(){
Ein= true;


}
public void ausschalten(){

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
 
hmm ich würd ja gern was lernen, und daher würde ich dich bitten, die Fehler der Lösungen kurz aufzuzeigen und zu korrigieren. Danke!
Deiner Lösung fehlt nur der Rückgabetyp:
Java:
    public void istEin() { // nicht void sonder boolean!!!!
       return schalterState; // liefert den aktuellen Status
    }
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben