private Account[] accounts;//屬性聲明為數(shù)組
public Customer(String f, String l,Account[] accounts){//構(gòu)造函數(shù)沒有聲明數(shù)組
firstName = f;
lastNameString = l;
this.accounts = new Account[5];//構(gòu)造函數(shù)中的初始化
}'
Object類是所有java類的根父類。
對(duì)于符號(hào)“==”:
1、基本數(shù)據(jù)類型。根據(jù)基本數(shù)據(jù)類型的值判斷是否相等,相等返回true,否則返回false。
兩種數(shù)據(jù)類型可以不同,在不同的情況下也可以返回true。
2、引用數(shù)據(jù)類型比較引用類變量的地址是否相等。
重寫equals()方法的使用場合:由于==和equals比較的都是兩個(gè)變量或者對(duì)象的地址值,但是有些情況下,我們只需要知道兩個(gè)對(duì)象的內(nèi)容是否相等就好了,而不必僅通過地址就給其下結(jié)論,這個(gè)是時(shí)候就需要重寫equals方法,而不是直接調(diào)用object的equals方法。
注:對(duì)于集合,有一個(gè)接口set,它有一個(gè)實(shí)現(xiàn)類HashSet,這個(gè)集合可以往里面存儲(chǔ)元素,但其只能存放相同的元素,而對(duì)于元素是否相同的判斷,便需要使用equals方法。所以當(dāng)一個(gè)類需要往集合當(dāng)中存放時(shí),該類一定要重寫object的equals方法。
對(duì)于equals():
1、只能處理引用類變量
2、在object類,發(fā)現(xiàn)equals()仍然比較的是兩個(gè)引用變量的地址是否相等。
3、像String 包裝類 File類 Date類,這些重寫object()的equals()方法,比較的是兩個(gè)對(duì)象的“實(shí)體內(nèi)容”是否相等。
4、若想比較兩個(gè)對(duì)象的屬性是否相等,則需要重寫object()類的equals()方法。 ? ? ? ? ? ? ?
例如:手動(dòng)生成
public boolean equals(Object obj){
? ? ? if(this == obj){//當(dāng)前對(duì)象的引用與形參是一樣的。兩個(gè)都是一個(gè)地址值。
? ? ? ? ? ? ?return true;}
? ? ? if(obj instanceof Person){//判斷形參obj是否是order的一個(gè)實(shí)例
? ? ? ? ? ? ? ?Person p = (Person)obj;
? ? ? ? ? ? ? ?return this.name == p.name && this.age == p.age;
? ? ? ? }else{
? ? ? ? ? ? ? ?return false;}
手動(dòng)生成并不嚴(yán)密,開發(fā)的時(shí)候,可以自動(dòng)生成。