一个类文件上写:
//demo1.java
package Demo;
public class demo1 {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();
p1.name="小明";
p1.id="123";
p2.name="小红";
p2.id="123";
p3.name="小明";
p3.id="123";
System.out.println(p1.equals(p2));
System.out.println(p2.equals(p3));
System.out.println(p1.equals(p3));
}
}
另一个文件上写:
//Person.java
package Demo;
public class Person{
String name;
String id;
@Override
public boolean equals(Object obj) {
Person p = (Person)obj;
boolean b1 = this.name.equals(p.name);
boolean b2 = this.id.equals(p.id);
return b1&&b2;
}
}
注意:两个类都是public,不能放在一起上写,代码如下:
//demo1.java
public class demo1 {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();
p1.name="小明";
p1.id="123";
p2.name="小红";
p2.id="123";
p3.name="小明";
p3.id="123";
System.out.println(p1.equals(p2));
System.out.println(p2.equals(p3));
System.out.println(p1.equals(p3));
}
}
public class Person{
String name;
String id;
@Override
public boolean equals(Object obj) {
Person p = (Person)obj;
boolean b1 = this.name.equals(p.name);
boolean b2 = this.id.equals(p.id);
return b1&&b2;
}
}
会报错以下信息如下:
java: 类 Person 是公共的, 应在名为 Person.java 的文件中声明
原因:
一个包里确实可以有数量不限的public类,但是一个文件里只能有一个public类,如果想要public多个类,就要新开一页代码:在同一个包下新建类,然后在那一页代码又可以使用public一个类了
解决方案:另一个类的public
去掉就没有报错的信息
运行结果如下:
false
false
true
Process finished with exit code 0