[ターン]オーバーライド等しい()メソッドは、書き換えが必要なハッシュコード()メソッドと、toString()メソッド

なぜハッシュコードを()メソッドと、toString()メソッドをオーバーライドする必要があります

、のtoString():

ハッシュコードのコードは、オブジェクト内部、このハッシュコードのコードの特性は単純なオブジェクトで表現できない場合に返されるオブジェクトクラスのtoString()メソッドを定義します。だから、のtoString()メソッドをオーバーライドします。
通常、すべてがデフォルトのtoString()メソッドを持つオブジェクトクラスの文字列の.javaコンテンツを変換するために彼のtoString()メソッドを呼び出すために、オブジェクトの出力を表示することが望まれる場合。
あなたは、出力情報を書き換える必要カスタマイズしたい場合は、デフォルトのSystem.out.println(オブジェクト名)またはSystem.out.printlnは(オブジェクト名.toString())によって出力は、このオブジェクトのクラス名とメモリの最初のアドレスに対応するオブジェクトでありますtoString()メソッド。

注意事項:

1. publicとして宣言する必要があります

2. String型のリターン

3.メソッドの名前はのtoString、およびパラメータなしでなければなりません

出力メソッド本体のSystem.out.println()を使用しない方法

 

二、hashCode():

比較は、同じメモリアドレスへのオブジェクト参照点であるか否かを定義するクラスオブジェクトに等しいです。一般的には2つのオブジェクトを比較するとき、彼の値は、その書き換えなければ同じです比較。上書きした後、2つのオブジェクトがvalue引数に等しいと比較することです。具体的には、8つのパックされたオブジェクトの使用を比較するときは(例えば、整数、浮動小数点数など)を等しくし、ストリングクラス(そのクラスがメソッドをオーバーライドされるように等しく、ハッシュコード)オブジェクトは、デフォルト値が比較され、他のオブジェクトと比較して比較するために参照されアドレス。

注:
1. 任意の基準値のために:再帰、X x.equalsの(x)が一定である真の
2 対称性:任意の参照値のためのx  と yの、場合x.equals(y)を返しtrueに、Y .equals(x)はまた戻らなければならない真に
3 推移:の値への参照のためのX、Y及びZ、場合x.equals(y)を返し真、及びy.equals(z)が戻り、その後、真x.equals (Z)も返さなければならない バック trueに4. 任意の基準値:一貫X  と すれば、Y 被写体情報が変更されていない、比較に等しい複数の呼び出しのx.equals(y)が一貫してのいずれかを返し真、または一貫して返す5. 非空:null以外の参照値のためのX、x.equals(NULL)で返さなければならない  

再現:https://www.cnblogs.com/yan217/p/5664895.html

、のtoString():

ハッシュコードのコードは、オブジェクト内部、このハッシュコードのコードの特性は単純なオブジェクトで表現できない場合に返されるオブジェクトクラスのtoString()メソッドを定義します。だから、のtoString()メソッドをオーバーライドします。
通常、すべてがデフォルトのtoString()メソッドを持つオブジェクトクラスの文字列の.javaコンテンツを変換するために彼のtoString()メソッドを呼び出すために、オブジェクトの出力を表示することが望まれる場合。
あなたは、出力情報を書き換える必要カスタマイズしたい場合は、デフォルトのSystem.out.println(オブジェクト名)またはSystem.out.printlnは(オブジェクト名.toString())によって出力は、このオブジェクトのクラス名とメモリの最初のアドレスに対応するオブジェクトでありますtoString()メソッド。

注意事項:

1. publicとして宣言する必要があります

2. String型のリターン

3.メソッドの名前はのtoString、およびパラメータなしでなければなりません

出力メソッド本体のSystem.out.println()を使用しない方法

 

二、hashCode():

比較は、同じメモリアドレスへのオブジェクト参照点であるか否かを定義するクラスオブジェクトに等しいです。一般的には2つのオブジェクトを比較するとき、彼の値は、その書き換えなければ同じです比較。上書きした後、2つのオブジェクトがvalue引数に等しいと比較することです。具体的には、8つのパックされたオブジェクトの使用を比較するときは(例えば、整数、浮動小数点数など)を等しくし、ストリングクラス(そのクラスがメソッドをオーバーライドされるように等しく、ハッシュコード)オブジェクトは、デフォルト値が比較され、他のオブジェクトと比較して比較するために参照されアドレス。

注:
1. 任意の基準値のために:再帰、X x.equalsの(x)が一定である真の
2 対称性:任意の参照値のためのx  と yの、場合x.equals(y)を返しtrueに、Y .equals(x)はまた戻らなければならない真に
3 推移:の値への参照のためのX、Y及びZ、場合x.equals(y)を返し真、及びy.equals(z)が戻り、その後、真x.equals (Z)も返さなければならない バック trueに4. 任意の基準値:一貫X  と すれば、Y 被写体情報が変更されていない、比較に等しい複数の呼び出しのx.equals(y)が一貫してのいずれかを返し真、または一貫して返す5. 非空:null以外の参照値のためのX、x.equals(NULL)で返さなければならない  

再現:https://www.cnblogs.com/yan217/p/5664895.html

おすすめ

転載: www.cnblogs.com/day1day1up/p/11128850.html