The Person class:
public class Person {
public Person() { }
public void isTheSamePerson (Person p){
if (p.equals(p)) {
System.out.println("They have the same names !!!");
} else{
System.out.println("They have different names !!!");
}
}
}
驱动程序类:
public class Driver {
public static void main(String[] args) {
Person Persona1 = new Person();
Person Persona2 = new Person();
System.out.print(Persona1.isTheSamePerson(Persona2));
}
}
什么时候 我正在尝试在System.out.println()
中调用该方法isTheSamePerson()
。我收到错误"无法解析方法'println(void('">
这里的代码中有几件事不对劲......首先,就像另一条评论说你不应该在system.out.println中调用该方法一样,因为它已经在方法中打印结果。
第二件不对劲的事情是你的平等比较器。
if (p.equals(p)) {
你正在将对象与它自己进行比较,这是错误的。您可能想要比较对象的实例,看起来您正在尝试比较名称,所以可能类似于
if(this.name.equals(p.getName())){
}
isTheSamePerson()
方法将void作为返回类型。
但是,System.out.print()
需要一个字符串类型的对象。
此外,isTheSamePerson()
总是打印相同的消息,因为它只需要一个Person
并将其与自身进行比较。
为什么要在println方法中调用它
而不是 System.out.print(Persona1.isTheSamePerson(Persona2((;
写 Persona1.isTheSamePerson(Persona2(;
你应该得到预期的输出。