2014-02-26 2 views
0

캡슐화가 계속됩니다. 마치 규칙에 따라 모든 것을 다한 것처럼 보이지만 여전히 효과가 없습니다. 나는 뭔가를 놓친다는 것을 알고 있지만. Eclipse로 작업하고 있습니다.캡슐화, getter가 null 또는 0을 반환합니다.

표준 52 개의 카드 갑판을 만들고 내가 배운 새로운 것들로 실험 해보고 싶었습니다. 나는 deckOfCard 패키지 내부에 카드 클래스를 만들었어요 :

package deckOfCards; 

public class Card { 

    private int value; 
    private String name; 

    public void setName(String n){ 
     n = name; 
    } 
    public String getName(){ 
     return name; 
    } 
    public void setValue(int v){ 
     v = value; 
    } 
    public int getValue(){ 
     return value; 
    } 
} 

그럼 내가 모든 (52 개) 카드를 만들어 주 불리는 데크 (I 확신 거기 쉽고 빠른 방법 만이있는 클래스를했습니다 I '아직 모르겠어요)

package deckOfCards; 

public class Deck { 

    public static void main(String[] args) { 
     Card h1 = new Card(); 
     h1.setValue(13); 
     h1.setName("Ace of Hearts"); 

     Card h2 = new Card(); 
     h2.setValue(1); 
     h2.setName("Two of Hearts"); 
. 
. 
all the way to 
. 
. 

     Card d12 = new Card(); 
     d12.setValue(11); 
     d12.setName("Queen of Diamonds"); 

     Card d13 = new Card(); 
     d13.setValue(12); 
     d13.setName("King of Diamonds"); 

하지만 값 또는 이름을 (에서 System.out.println (h1.getName()) 또는에서 System.out.println (h1.getValue())) outprint 할 때 어떤 카드의 덱 클래스에서 내가 설정하지 않은 것처럼 null (문자열) 또는 0 (int)을 얻습니다.

내가 뭘 잘못하고 있니?

답변

1
private String name; 

public void setName(String n){ 
    n = name; 
} 

당신은 클래스 VAR (name)와 (n) 지역을 덮어하고 있습니다. 그들을 교환하십시오 (name = n).

+0

매력처럼 작동합니다. 정말 고마워요! – kamenjan