015-Object类的使用

声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看)
一、Object类是所有Java类的根父类,如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
public class Person {
...
}
等价于:
public class Person extends Object {
...
}
二、Object类中的主要结构
015-Object类的使用
三、==操作符与equals方法
1、==操作符
基本类型比较值:只要两个变量的值相等,即为true。
如: int a = 5; if(a == 6) {...}
引用类型比较引用(是否指向同一个对象):只有指向同一个对象时,才返回true。
如: Person p1 = new Person(); Person p2 = new Person(); if(p1 == p2){...}
用“==”进行比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错。
2、equals():所有类都继承了Object,也就获得了equals()方法,还可以重写。其只能比较引用类型,其作用与“==”相同,比较是否指向同一个对象,格式为,obj1.equals(obj2)
3、特例:当用equals()方法进行比较时,对类File、String、Date及包装类(Wrapper Class)来说,是比较类型及内容而不考虑引用的是否是同一个对象,原因是在这些类中重写了Object类的equals()方法。
4、当自定义使用equals()时,可以重写,用于比较两个对象的“内容”是否都相等。
四、重写equals()方法的原则
1、对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。
2、自反性:x.equals(x)必须返回是“true“。
3、传递性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。
4、一致性:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是“true”。
5、任何情况下,x.equals(null),永远返回是“false”;x.equals(和x不同类型的对象)永远返回是“false”。
五、toString()方法
1、toString()方法在Object类中定义,其返回值是String类型,返回类名和它的引用地址。
2、在进行String与其它类型数据的连接操作时,自动调用toString()方法
Date now = new Date();
System.out.println(“now”+ now);相当于
System.out.println(“now”+now.toString());
3、可以根据需要在用户自定义类型中重写toString()方法,如String类重写了toString()方法,返回字符串的值。
s1 = “hello”;
System.out.println(s1);//相当于System.out.println(s1.toString());
4、基本类型数据转换为String类型时,调用了对应包装类的toString()方法
int a = 10;
System.out.pringln(“a=” + a);
5、练习
015-Object类的使用

猜你喜欢

转载自blog.51cto.com/12859164/2553015