Java 无法对非静态方法问题进行静态引用

Java 无法对非静态方法问题进行静态引用,java,Java,我已经在类Person中重写了方法toString(),但我不能在我的主方法中使用它-“无法从类型对象对非静态方法toString()进行静态引用” 我怎样才能解决这个问题 使用: System.out.println(person.toString()); toString方法是一种非静态方法,这意味着它与特定实例相关 当你想调用它时,你需要在一个特定的人实例上调用它。你试图从一个静态上下文调用一个非静态方法(在本例中是你的主方法)。要调用Person对象的toString方法,需要执行Pe

我已经在类Person中重写了方法toString(),但我不能在我的主方法中使用它-“无法从类型对象对非静态方法toString()进行静态引用”

我怎样才能解决这个问题

使用:

System.out.println(person.toString());
toString
方法是一种非静态方法,这意味着它与特定实例相关


当你想调用它时,你需要在一个特定的
实例上调用它。

你试图从一个静态上下文调用一个非静态方法(在本例中是你的主方法)。要调用
Person
对象的
toString
方法,需要执行
Person.toString()

有时,把我们的代码想象成英语有助于我们理解它。这句话的英文是“把人转换成字符串”。让我们把它转换成代码


Person映射到我们创建的
Person
对象。“to a string”映射到
toString()
方法。在Java中,对象和动词(方法)由句点分隔。上面英文的完整代码是
person.toString()

你不能那样调用这个方法,你应该使用referece“person”


toString(..)
Person
类的成员方法。这意味着您可以通过类的对象实例调用它。因此,您需要在
System.out.println(..)中调用
person.toString()
而不是
toString()

omg。。。。对于这个愚蠢的问题,我很抱歉…在谷歌上粘贴你问题的标题,然后阅读数百个返回页面中的一个。不需要调用
toString()
此处是的,你是对的,但我之所以这样做是因为我不喜欢混淆用户2976091
System.out.println(person.toString());
System.out.println(person.toString());