Javaのequals()のオーバーライドに関してコードの意味が分からない部分があります・・・

実現したいこと

すっきり分かるJava(実践編)P28 に記載されているコードの意味を知りたい
記載しているコードの意味(各行)を説明していただきたい。

前提

すっきり分かるJavaを学習しているのですが、記述されているコードの意味が分からず困っています。

該当のソースコード

public class Account { String accountNo; //口座番号(先頭に空白が入ることもある) public boolean equals(Object o) { if (o == this) return true; //自分自身が引数として渡されたら、無条件でtrueを返す if(o == null) return false;//Nullが引数として渡されたら、無条件でfalseを返す if(!(o instanceof Account)) return false;//方が異なるならば、falseを返す(同じなら下のコードに備え、比較できるように適切にキャストする) Account r = (Account)o; if (!this.accountNo.trim().equals(r.accountNo.trim())) {//2つのインスタンスが持つしかるべきフィールド同士を比較して等価か判断し、trueかfalseを返す。 return false; } return true; } }

試したこと・調査したこと

調査し、下記に関しては理解。
Objectクラスにあるメソッドequalsを使用しての操作まで理解しました。

if (o == this) return true; //自分自身が引数として渡されたら、無条件でtrueを返す
if(o == null) return false;//Nullが引数として渡されたら、無条件でfalseを返す

上記コードまでは理解できたのですが、そこから先の理解に苦しんでいます。

よろしくお願いいたします。

コメントを投稿

0 コメント