2017-05-17 2 views
-5

클래스 데크에 ArrayList 데크가 있습니다. Array 객체를 CardList 객체로 채 웁니다.초기화 된 객체로 ArrayList 채우기

또한 카드 개체의 특성을 채우기를 원합니다.

결과를보기 위해 for 루프를 추가했으며 ArrayList에는 이름이 NULL이고 값이 0 인 5 개의 개체가있었습니다. 이 필드의 기본값을보고 있기 때문에

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'을 사용해야합니다. – bradimus

+0

남자, 방금 간단한 질문을했습니다. 나는 결코 나의 "숙제"를 풀고 싶지 않았다. 당신이 나를 돕고 싶지 않다면, 당신은 환영받지 못한다! – Manolis

답변

3

(FillDeck 메인 함수에서 호출 된)

. 실제로 값을 할당해야한다는 것을 수정하십시오. 귀하의 Card(String name, int value, boolean samecard)

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

오, 고마워. 나 너무 아마추어 야! – Manolis

2

잘못 구현을 가지고, 당신은 생성자 매개 변수에 인스턴스 변수를 할당 할 수 없습니다.

그냥이 잘못 명확합니다 : 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; 
} 
관련 문제