Object类
Object类的特点
- Object类是所有类的默认父类(不需要使用extends显示继承),因此Object类的所有方法(private除外),所有类的对象都能使用
- java中对Object做了扩充,Object不仅是所有类的父类,只要是引用类型。都是可以向上转型变为Object类,包括数组和接口。Object类型可以接收所有的引用数据类型
- Object是引用数据类型的最高统一参数,如果你设计的方法需要接收所有的引用数据类型,类型就声明为Object
Object类的源码和方法
- 源代码:
- 方法:
注:
- 带绿色小锁子的表示他是public权限
- 带钥匙的是protected权限
- 红色小锁子是private权限
toString和equals方法
toString方法
- toSting():将对象转为字符串进行输出,打印对象的内容,如果一个类不对这个toString进行重写就会默认调用Object类的toString()方法。
equals方法
-
Object类的equals默认比较的是当前对象(this)表示的是当前对象,与传入的对象的地址进行比较
-
要想让他们比较相等需要重写equals方法,equals方法的重写步骤
//重写equals方法 public boolean equals(Object obj) { //1、判断obj是否为空,如果我们传进来的obj为空就不用比较了,直接返回false if (obj==null) { return false; } //2、判断obj是否就是自己 if (obj==this) { return true; } //3、判断obj类是不是本类的对象,在这本例中也就是需要判断下他是不是student类 if (!(obj instanceof student)) { return false; } //4、此时obj一定是student类的对象而且与当前对象不是一个地址 //让obj向下转型还原为student类,然后比较当前对象的属性和传入的对象的属性 student stu = (student) obj; return this.name.equals(stu.name) && this.age==stu.age; }
-
此时就相等了