我坚持封装。在我看来好像我按照规则做了所有事情,但它仍然不起作用。虽然我知道我错过了什么。我正在使用Eclipse。
我希望通过制作一副标准的52张牌并尝试我学到的新东西来进行一些练习。我在deckOfCard包中创建了一个Card类:
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;
}
}
然后我做了一个名为Deck的主课,在那里我制作了所有的52张卡片(我确信那里有简单快捷的方式,但我还没有)
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");
但是当我尝试在任何卡的Deck类中打印任何值或名称(System.out.println(h1.getName())或System.out.println(h1.getValue()))时,我得到null (字符串)或0(int),好像我没有设置任何一个。
我做错了什么?
答案 0 :(得分:1)
private String name;
public void setName(String n){
n = name;
}
您正在使用类var(n
)覆盖本地(name
)。交换它们(name = n
)。