Java getClass().getName()它返回类而不是名称

Java getClass().getName()它返回类而不是名称,java,Java,输出是卡片。据说是无名的简。我该如何解决这个问题?我试图用Card.getClass().getName()修复它,但这给了我另一个错误:无法从静态上下文引用非静态方法getClass() public class Card { private String name; public Card() { name = "unknown"; } public Card(String name1) { name =

输出是卡片。据说是无名的简。我该如何解决这个问题?我试图用Card.getClass().getName()修复它,但这给了我另一个错误:无法从静态上下文引用非静态方法getClass()

public class Card

{
    private String name;

    public Card()
    {
        name = "unknown";
    }

    public Card(String name1)
    {
        name = name1 ;
    }

    public String getName()
    {
        return name;
    }

    public String toString()
    {
        return getClass().getName();
    }
}

public class CardTester
{
    public static void main(String[] args)
    {
        Card card ;

        card = new Card() ;
        System.out.println(card) ;
        System.out.println("unknown WAS EXPECTED") ;

        card = new Card("Jane") ;
        System.out.println(card) ;
        System.out.println("Jane WAS EXPECTED") ;
    }
}
getClass()
返回表示“卡”类的值;因此,代码不是指
Card#getName
方法,而是指尽职尽责地返回“Card”的方法

只需删除
getClass()

上一个错误(wrt“static”)使用的是
Card.getName()
-不要为调用实例方法的类型添加前缀。

您的
toString()
方法打印对象类的名称:

return getClass().getName();
该对象是
Card
的实例,因此其类为
Card.class
,其名称为
Card
。您希望打印名称字段的值。所以你只需要

return name;
return name;