Object类

发布时间 2023-11-27 09:59:40作者: 同学?

Object类是比较特殊的类,它是所有类的父类是java类层中的最高层类,所有的类都直接或间接继承了Object类
当创建一个类时,总是在继承,除非某个类已经指定要从其他类继承,否则它就是从Object类继承而来的。由于所有类都是Object类子类,所以在定义类时,还省略了Object关键字:class a{}等价于class a extends object{}
因为所有类都是Object类的子类,所以任何类都可以重写Object类中的方法
getClass()方法
getClass()方法是Object类定义的方法,它会返回对象执行时的class实例,然后使用此实例调用getName()方法可以取得类的名称:getClass().getname();
object类中的getclass(),notify(),notifyAll(),wait()等方法不能被重写,因为这些方法被定义为final类型
toString()方法
tostring()方法的功能是将一个对象返回为字符串形式,它会返回一个String实例,在实际的应用中通常重写tostring()方法,为对象提供一个特定的输出模式,当这个类转化为字符串或与字符串连接时,将自动调用tostring()方法
equals()方法
==比较的是两个对象的引用是否相等,而equals()方法比较的是两个对象的实际内容

class v1{
}
public class V {
public static void main(String[] args) {
String s1="1,2,3";//实例化两个对象,内容相同
String s2="1,2,3";
System.out.println(s1.equals(s2));//使用equals()方法调用
v1 v2 = new v1();//实例化两个v类对象
v1 v3 = new v1();
System.out.println(v2.equals(v3));//使用equals()方法比较v1与v2对象
}
}
在自定义的类中使用equals()方法进行比较时,将返回false,因为equals()方法的默认实现是使用==运算符比较两个对象的引用地址,而不是比较对象内容