equals()--java11(07/12/2015)
private Account[] accounts;//属性声明为数组
public Customer(String f, String l,Account[] accounts){//构造函数没有声明数组
firstName = f;
lastNameString = l;
this.accounts = new Account[5];//构造函数中的初始化
}'
Object类是所有java类的根父类。
对于符号“==”:
1、基本数据类型。根据基本数据类型的值判断是否相等,相等返回true,否则返回false。
两种数据类型可以不同,在不同的情况下也可以返回true。
2、引用数据类型比较引用类变量的地址是否相等。
重写equals()方法的使用场合:由于==和equals比较的都是两个变量或者对象的地址值,但是有些情况下,我们只需要知道两个对象的内容是否相等就好了,而不必仅通过地址就给其下结论,这个是时候就需要重写equals方法,而不是直接调用object的equals方法。
注:对于集合,有一个接口set,它有一个实现类HashSet,这个集合可以往里面存储元素,但其只能存放相同的元素,而对于元素是否相同的判断,便需要使用equals方法。所以当一个类需要往集合当中存放时,该类一定要重写object的equals方法。
对于equals():
1、只能处理引用类变量
2、在object类,发现equals()仍然比较的是两个引用变量的地址是否相等。
3、像String 包装类 File类 Date类,这些重写object()的equals()方法,比较的是两个对象的“实体内容”是否相等。
4、若想比较两个对象的属性是否相等,则需要重写object()类的equals()方法。
例如:手动生成
public boolean equals(Object obj){
if(this == obj){//当前对象的引用与形参是一样的。两个都是一个地址值。
return true;}
if(obj instanceof Person){//判断形参obj是否是order的一个实例
Person p = (Person)obj;
return this.name == p.name && this.age == p.age;
}else{
return false;}
手动生成并不严密,开发的时候,可以自动生成。