Object
• 在Java类继承结构中,java.lang.Object类位于顶端;
• 如果定义一个Java类时没有使用extends关键字声明其父类,则其父类默认为java.lang.Object类;
• Object类型的引用变量可以指向任何类型对象。
1 toString方法
Object类中的重要方法,用于返回对象值的字符串表示;
• Java语言中很多地方会默认调用对象的toString方法:
– 字符串+对象,自动调用对象的toString方法
– System.out.print(任意对象),直接调用toString方法
• 如果不重写toString方法,将使用Object的toString方法,其逻辑为:
– 类名@散列码
• toString方法是非常有用的调试工具;
• JDK中的标准类库中,许多类都定义了toString方法,方便用户获得有关对象状态的必要信息;
• 强烈建议为自定义的每一个类增加toString方法。
2 equals方法
Object中的方法,作用在于检测一个对象是否等于另外一个对象;
在Object类中,这个方法判断两个对象是否具有相同的引用,即是否为相同的对象;
在实际应用中,一般需要重写该方法,通过比较对象的成员属性,使该方法具有意义,例如:对于Cell类,如果不重写equals方法,下面代码在cell1和cell2指向同一个对象时才为true,可以将其重写为:当x和y坐标相等时两个对象即相等,这样更有意义一些。
equals和 = = 的区别
• = =用于比较变量的值,可以应用于任何类型,如果用于引用类型,比较的是两个引用变量中存储的值(地址信息),判断两个变量是否指向相同的对象;
• equals是Object的方法,重写以后,可以用于比较两个对象的内容是否“相等”;
• 需要注意的是,Object默认的equals方法的比较规则同==