有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java封装,getter返回null或0

我被封装卡住了。在我看来,好像我做每件事都是按规则做的,但它仍然不起作用。虽然我知道我错过了一些东西。我在和Eclipse合作

我想通过制作一副标准的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;
    }
}

然后,我用main制作了一个名为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");

但是当我尝试输出任何值或名称(System.out.println(h1.getName())或系统时。出来在任何卡片的Deck类中,println(h1.getValue())都会被设置为null(string)或0(int),就好像我没有设置一样

我做错了什么


共 (1) 个答案

  1. # 1 楼答案

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

    您正在用类var(name)覆盖本地(n)。交换它们(name = n