
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类。本文南宁IT培训介绍java编程开发中Object类的使用。
1、Object类是所有Java类的根父类
如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
public class Person {
...
}
等价于:
public class Person extends Object {
...
}
例:
method(Object obj){…} // 可以接收任何类作为其参数
Person o=new Person();
method(o);
2、==操作符与equals方法
= =:
基本类型比较值:只要两个变量的值相等,即为true。
int a=5; if(a==6){…}
引用类型比较引用(是否指向同一个对象):只有指向同一个对象时,==才返回true。
Person p1=new Person();
Person p2=new Person();
if (p1==p2){…}
用“==”进行比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错。
equals():所有类都继承了Object,也就获得了equals()方法,还可以重写。
只能比较引用类型,其作用与“==”相同,比较是否指向同一个对象。
格式:obj1.equals(obj2)
1
2
特例:当用equals()方法进行比较时,对类File、String、Date及包装类(Wrapper Class)来说,是比较类型及内容而不考虑引用的是否是同一个对象
原因:在这些类中重写了Object类的equals()方法。
当自定义使用equals()时,可以重写。用于比较两个对象的“内容”是否都相等
3、重写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”。
4、==和equals的区别
1. "=="既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型就是比较内存地址;
2. equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过默认也是"==";我们可以看到
String等类的equals方法是被重写过的,而且String类在日常开发中用的比较多,久而久之,形成了equals是比
较值的错误观点;
3. 具体要看自定义类里有没有重写Object的equals方法来判断;
4. 通常情况下,重写equals方法,会比较类中的相应属性是否都相等。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请添加3216764521学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。