2016-09-09 7 views
-1

私のクラスでは、「カード」を額面とスーツで作成するJavaプログラムに取り組んでいます。それは2つのファイルを使用します.1つはランナーであり、もう1つはクラスです。しかし、私は自分のコードで一連のエラーに悩まされています。Javaのヘルプ:このエラーを修正するにはどうすればよいですか?

これは、カードのクラスのために私のコードです:

public class Card 
{ 
    public static final String FACES[] = {"ZERO","ACE","TWO","THREE","FOUR", 
      "FIVE","SIX","SEVEN","EIGHT","NINE","TEN","JACK","QUEEN","KING"}; 

     private String suit; 
     private int face; 

     public Card() 
     { 
      face = 0; 
      suit = "CLUBS"; 
     } 
     //set methods 
     public Card(String str1, int int1) 
     { 
      face = int1; 
      suit = str1; 
     } 

    public int getFace() 
    { 
     return face; 
    } 

    public String getSuit() 
    { 
     return suit; 
    } 
    public Void setFace(int face) 
    { 
     face = face; 
     return face; 
    } 
    public Void setSuit(String suit) 
    { 
     suit = suit; 
     return suit; 
    } 

    public String toString() 
    { 
     return FACES[face] + " of " + suit; 
    } 
} 

私に問題を与えている部分)がsetSuit()とsetFace(です。

この私がThis.suitまたはThis.faceを試み、それが(もちろん動作しませんでした)を返すように私に尋ねる私にリターンエラーを与えた前

この現在の設定は、それができないと言って私にエラーを与えますvoidに変換します。

私はこれがとてもシンプルだと思うが、私は初心者で約3週間前にJavaを試し始めたので、誰かが私を助けてくれますか?私は答えがほしいというだけではなく、なぜこれが動かないのか理解したい。

+0

voidの戻り値の型を調べます。 –

+0

@DjBarringtonはあなたのためのヒントです。あなたが_Eclipse_のようなIDEを使用しているなら、setters/gettersを生成することができます。メニューバーの**ソース**をクリックしてから**ゲッターとセッターを生成する** – smoggers

+1

あなたは[Void](http://stackoverflow.com/questions/676663/what-do-i-return戻り値の型は空白ではない)、戻り値の型は小文字のv、 'void'で指定したいと思う) – scrappedcola

答えて

1

メソッドが無効で戻り値が無効なので、これらの2つのメソッドに値を返すか、返される型に編集しないでください。 戻りステートメントを削除すると、実際には返されません。ちょうどあなたがゲッター

1

問題をuser6798995で言ったように持っているので、それは不要だ設定は、戻り値の型がvoidの場合は、何かを返すことはできません

public Void setFace(int face) 
    { 
     face = face; 
     return face; 
    } 
    public Void setSuit(String suit) 
    { 
     suit = suit; 
     return suit; 
    } 

コードを下回っている

ので、 SEは、あなたが行うことができます主な方法については

public void setFace(int face) 
    { 
     face = face; 
    } 
    public void setSuit(String suit) 
    { 
     this.suit = suit; 

    } 

でなければなりません

Card c=new Card(); 
c.setFace(7); 
c.setSuit("Clubs"); 

System.out.prinln("Face is"+c.getFace +" Suit is"+ c.getSuit()); 
3

[OK]を2つの問題がここにあります 1 - まず問題は必ずしも間違ったことはありませんが、それは本当にここに必要とされていません。あなたは、あなたのメソッドを、オブジェクトのみを返すメソッドまたは他の同様のシナリオを許可するクラスで必要とされるVoidを返しました。ここでは空白が本当に十分です。

2- voidは何も意味しません。あなたの戻り値の型が無効な場合は、何も返さないようにしてください。実際には、メソッドsetSuitを呼び出すことは意味がありません。あなたの友人にその食品を冷蔵庫に入れてお待ちください彼はあなたに食糧を与えてくれました。私が忠告した「空」を使用した場合は、空がオブジェクトであるため、nullを返す必要があります。返されるものです。ボイドも何の意味もないので、それがinstantialbeされることが意味がありません(例:あなたは「カントこれを行います。

Void nothing=new Void(); 

をこのように、この場合には、あなたが何を意味するその(ヌルを返却する必要があります)今の場合。最後の部分は意味がありませんでした。戻り値の型として空白を入れただけで何も返す必要はありませんでした。

最後に、これを置く必要があります。あなたが参照している顔/スーツを認識し、setFace/SetSuitsのメソッドのfaceパラメータをオブジェクトのfaceパラメータ(this)に割り当てます。ここで

は、あなたの方法の修正版である:誰もこれを越え来れば

public void setFace(int face){ 
    this.face = face; 
} 

public void setSuit(String suit){ 
    this.suit = suit; 
} 
1

、私はハードな方法を学んだが、ボイドが使用する必要があります。 "空"は私に問題を与えていたものです。

関連する問題