Seite 1 von 1

Java Programm

Verfasst: 18.05.2011, 21:36
von Benschzilla
Hi,

es ist zwar nichts zum Webprogrammierung, aber trotzdem Programmierung mittels Java.
Also AUfgabe ist es im Prinzip die Klasse Card zu erstellen, unter anderem soll die Methode toString() überschrieben werden, jedoch funktioniert das nicht so, wie ich mir das hier vorstelle, könnte ihr mir helfen?
Ich bekomme immer die Meldung das die Methode einen Wert vom Typ String zurückgeben muss, eigentlich sollte sie dies ja auch tun, jedoch passiert nichts.


Code: Alles auswählen

public class Card {
   
   enum Type {KREUZ, PIK, HERZ, KARO};
   enum Value {Ass, b,c,d,e,f,g,h,i,j,Bube,Dame, König};
   
   
   private Type cardType;
   private Value cardValue;
   
   Card (){
      
      this.cardType = Type.KREUZ;
      this.cardValue = Value.b;
   }
   
   Card (Type cardType, Value cardValue){
      
      this.cardType = cardType;
      this.cardValue = cardValue;
      
   }
   
   public Type getType(){
      
      return cardType;
   }
   
   public Value getValue(){
      
      return cardValue;
   }
   
   public String toString() {

      switch (this.cardType) {
         case KREUZ: return "Kreuz";
         case PIK: return  "Pik";
         case HERZ: return  "Herz";
         case KARO: return  "Karo";
      }
   }
   
   
   public static void main(String[] args)
   {
      Card a = new Card(Type.HERZ, Value.b);
      a.toString();
      
   }
   
   

}

Re: Java Programm

Verfasst: 19.05.2011, 21:23
von -AB-
Tatsache, der Compiler drückt sich da nicht unbedingt klar aus. Der C++-Compiler würde etwas sagen wie: "Warnung, nicht alle Kontrollpfade geben einen Wert zurück" - und genau das ist der Fall: Theoretisch könnte das try/catch keinen catch block treffen, und in dem Fall gäbe es keinen Returnwert.

Da der Fall ja aber nur auftreten kann, wenn du zufälligerweise noch eine weitere Farbe erfindest, kannst du guten Gewissens eine Zeile wie z.B.

Code: Alles auswählen

default: throw new RuntimeException();


zum switch/case hinzufügen - Problem gelöst :)

Re: Java Programm

Verfasst: 20.05.2011, 07:22
von Benschzilla
^^ Jo wunderbar, danke, die Lösung war mal wieder zu einfach!

Re: Java Programm

Verfasst: 21.05.2011, 08:44
von chillmensch
Ich habe dein Beispiel nochmal aufgegriffen, da weitestgehend ein POJO draus gemacht und toString() sinnvoll überschrieben:

Code: Alles auswählen

public class Card {

   private Type cardType;

   private enum Type {
      KREUZ, PIK, HERZ, KARO
   };

   public Type getCardType() {
      return cardType;
   }

   public void setCardType(Type cardType) {
      this.cardType = cardType;
   }

   public String toString() {
      String type = cardType.toString();      
      return type.substring(0, 1) + type.substring(1).toLowerCase();
   }

   public static void main(String[] args) {
      Card card = new Card();
      card.setCardType(Type.HERZ);
      System.out.println(card.toString());
   }

}

Re: Java Programm

Verfasst: 26.05.2011, 16:55
von Benschzilla
^^ Danke ich habe das jetzt auch nochmal ein wenig modifiziert und es funzt alles!