Object类的作用:m a r k - t o- w i n: 在java中,因为所有的类都有共性,所以java的缔造者们把java设计成这样:所有的类都是Object类的直接或间接子类,而且把上述所有类的共 性都放在Object类中。这样就可以达到代码重用。All classes in java are subclasses of Object class。
Object类的equals和toString的用法:
下面一组两个例子,马克-to-win:第一个例子是用的父类Object的equals和toString方法,Object的equals是比较对象 在内存当中的地址, 当然不一样了。 而第二个例子Company的equals方法是自己写的,比较的他们的name属性,只要name一样,对象的equals返回的就是真。println (c1);会导致c1的toString被调用(这是语法),第一个例子中c1因为没有toString方法, 所以就用基类Object的toString方法。另外,Object的 toString方法打印出来就是Company@1b67f74,这是Sun公司编的。而后面一个例子的toString方法时咱们自己编的。
例:2.1.1--
class CompanyMark_to_win {
private String name;
CompanyMark_to_win(String name) {
this.name = name;
}
/*
public String toString() {
return name;
}
public boolean equals(Object o) {
if (!(o instanceof CompanyMark_to_win))
return false;
CompanyMark_to_win c = (CompanyMark_to_win) o;
return name.equals(c.name);
}
*/
}
public class Test {
public static void main(String[] args) {
CompanyMark_to_win c1 = new CompanyMark_to_win("Abc");
CompanyMark_to_win c2 = new CompanyMark_to_win("Abc");
CompanyMark_to_win c3 = new CompanyMark_to_win("xyz");
System.out.println("c1.equals(c2): " + c1.equals(c2));
System.out.println("c1.equals(c3): " + c1.equals(c3));
System.out.println(c1);
}
}
更多请见:https://blog.csdn.net/qq_44639795/article/details/103117009