Java Programm

Homepages, CMS, Templates, Web Based Programming, Webhosting, Gameserver

Moderatoren: coolmann, chillmensch

Benutzeravatar
Benschzilla
Beiträge: 1391
Registriert: 12.12.2003, 10:45
Wohnort: Forchheim
Kontaktdaten:

Java Programm

Beitragvon Benschzilla » 18.05.2011, 21:36

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();
      
   }
   
   

}
AMD Ryzen 7 3700X auf ASUS Prime B350 Plus
32 GB DDR4 RAM (3200 MHz) Crucial Ballistix Dual Rank
PowerColor Red Devil RX480
1,5TB Speicher + Samsung Evo 860 mir 250GB für OS

Homeserver:
Raspberry Pi 4 mit 4GB RAM + 1TB Datengrab

Benutzeravatar
-AB-
Beiträge: 1610
Registriert: 22.04.2005, 21:45
Wohnort: Liverpool
Kontaktdaten:

Re: Java Programm

Beitragvon -AB- » 19.05.2011, 21:23

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 :)

Benutzeravatar
Benschzilla
Beiträge: 1391
Registriert: 12.12.2003, 10:45
Wohnort: Forchheim
Kontaktdaten:

Re: Java Programm

Beitragvon Benschzilla » 20.05.2011, 07:22

^^ Jo wunderbar, danke, die Lösung war mal wieder zu einfach!
AMD Ryzen 7 3700X auf ASUS Prime B350 Plus
32 GB DDR4 RAM (3200 MHz) Crucial Ballistix Dual Rank
PowerColor Red Devil RX480
1,5TB Speicher + Samsung Evo 860 mir 250GB für OS

Homeserver:
Raspberry Pi 4 mit 4GB RAM + 1TB Datengrab

Benutzeravatar
chillmensch
Beiträge: 1935
Registriert: 09.03.2004, 15:49
Wohnort: Kiel
Kontaktdaten:

Re: Java Programm

Beitragvon chillmensch » 21.05.2011, 08:44

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());
   }

}
Besucht doch auch mal meine persönliche Webseite
Mein letztes Projekt: Fahrschule Kiel

Benutzeravatar
Benschzilla
Beiträge: 1391
Registriert: 12.12.2003, 10:45
Wohnort: Forchheim
Kontaktdaten:

Re: Java Programm

Beitragvon Benschzilla » 26.05.2011, 16:55

^^ Danke ich habe das jetzt auch nochmal ein wenig modifiziert und es funzt alles!
AMD Ryzen 7 3700X auf ASUS Prime B350 Plus
32 GB DDR4 RAM (3200 MHz) Crucial Ballistix Dual Rank
PowerColor Red Devil RX480
1,5TB Speicher + Samsung Evo 860 mir 250GB für OS

Homeserver:
Raspberry Pi 4 mit 4GB RAM + 1TB Datengrab


Zurück zu „Webseiten, Webprogrammierung & Domains“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste