Person类:
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)‘”
发布于 2020-06-15 01:08:33
在这里你的代码中有几件事是错误的。首先,与其他注释一样,您不应该在system.out.println中调用该方法,因为它已经在该方法中打印结果。
第二件事是你的相等的比较器。
if (p.equals(p)) {
您正在将对象与其自身进行比较,这是错误的。您可能想要比较对象的实例,并且看起来您正在尝试比较名称,因此可能类似于
if(this.name.equals(p.getName())){
}
发布于 2020-06-15 01:18:51
isTheSamePerson()
方法的返回类型为空。
但是,System.out.print()
需要一个String类型的对象。
此外,isTheSamePerson()
总是打印相同的消息,因为它只使用一个Person
并将其与自身进行比较。
发布于 2020-06-15 01:03:47
为什么要在println方法内部调用它
代替System.out.print(Persona1.isTheSamePerson(Persona2));
写Persona1.isTheSamePerson(Persona2);
你应该会得到预期的输出。
https://stackoverflow.com/questions/62375577
复制相似问题