2017-05-17 7 views
-5

クラスDeckにArrayListデッキがあります.ArrayListにCardオブジェクトを埋めたいと思います。初期化されたオブジェクトでArrayListを塗りつぶす

また、カードオブジェクトの属性を入力したいと思います。

結果を見るためにforループを追加しました.ArrayListには、名前にNULLがあり、値が0の5つのオブジェクトがありました。

(FillDeckは、main関数で呼び出されている)

import java.util.ArrayList; 


public class Deck { 

    private ArrayList<Card> deck=new ArrayList(); 


     public Deck(){ 

    } 


     public Deck(ArrayList<Card> deck){ 

     this.deck = deck; 

    } 

      //hearts,spades,diamonds,clubs 
     Card card1 = new Card("A hearts",11,true); 
     Card card2 = new Card("2 hearts",2,true); 
     Card card3 = new Card("3 hearts",3,true); 
     Card card4 = new Card("4 hearts",4,true);  
     Card card5 = new Card("5 hearts",5,true); 




    public void filldeck(){ 





     deck.add(card1);  
     deck.add(card2);  
     deck.add(card3);  
     deck.add(card4);  
     deck.add(card5);  


      for (int i=0; i<deck.size(); i++){ 

       System.out.println(deck.get(i).getName()); 
       System.out.println(deck.get(i).getValue()); 


      } 

    } 


} 




public class Card { 


    private String name; 
    private int value; 
    private boolean samecard = true ; 

    public Card(){ 

    } 

    public Card(String name,int value,boolean samecard){ 

     name = this.name; 
     value = this.value; 
     samecard = this.samecard; 
    } 

    public String getName(){ 

     return name; 
    } 

    public int getValue(){ 

     return value; 
    } 

    public boolean getSamecard(){ 

     return samecard; 
    } 
} 
+5

(かなり遅れて!フォーマットされた)コード。そしていくつかの要件。しかし、あなたの質問は何ですか?私たちはあなたの宿題の残りの部分をそれをすべて消化していますか?申し訳ありませんが、コードに問題がある場合は、[mcve]を入力してください。 – GhostCat

+1

カードのデッキには 'enum'sを使ってください。 – bradimus

+0

男、私はちょっとした質問をしました。私は私の "宿題"を解決したかったことはありませんでした。あなたが私を助けたいと思わないなら、あなたは歓迎していません! – Manolis

答えて

3

あなたは、フィールドのデフォルト値を見ているので。実際に値を割り当てる必要があることを修正します。

public Card(String name,int value,boolean samecard){ 
    this.name = name; 
    this.value = value; 
    this.samecard = samecard; 
} 
+0

オハイオ州にはありがとうございました。それは私のアマチュアだった! – Manolis

2

Card(String name, int value, boolean samecard)の実装が間違っているため、インスタンス変数をコンストラクタパラメータに割り当てることはできません。

だけ明確にすること、これは間違っている:name = this.name

これは正しいです:this.name = name

は、これは正しい実装である:

public Card(String name,int value,boolean samecard){ 
     this.name = name; 
     this.value = value; 
     this.samecard = samecard; 
    } 
1

あなたは、カードのクラスの内部の変更をあなたのコンストラクタを台無しにコンストラクタ変数の代入で:

this.name = name; 
this.value = value; 
this.samecard = samecard; 
0

請負業者に問題があります。

public Card(String name,int value,boolean samecard){ 
    name = this.name; 
    value = this.value; 
    samecard = this.samecard; 
} 

と、それは次のようにする必要があります:それはこのようのを見て

public Card(String name,int value,boolean samecard){ 
    this.name = name; 
    this.value = value; 
    this.samecard = samecard; 
} 
0

あなたはqualifying割り当ての右側にあり、それが、この場合には間違っています:

public Card(String name,int value,boolean samecard){ 

    name = this.name; 
    value = this.value; 
    samecard = this.samecard; 
} 

それはする必要があります

public Card(String name,int value,boolean samecard){ 

    this.name = name; 
    this.value = value; 
    this.samecard = samecard; 
} 
関連する問題