Javaでは、なぜあなたはtoStringメソッドを上書きしたいですか?説明するために簡単な例をここに。
TEST5は、最初のクラスを定義します。そして、その取得、セット方法を書きました。
パッケージTEST5。 パブリック クラスTEST5 { プライベート文字列名; プライベート文字列のセックス。 プライベート int型はありません。 公共 のボイドショー(){ System.out.printlnは( "这是我的展示方法!!!!" ); } パブリック文字列のgetName(){ 戻り名。 } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } パブリック文字列getSex(){ 戻り性別; } 公共 のボイドsetSex(文字列セックス){ この .sex = セックス; } 公共 のint getNo(){ リターンなし; } 公共 ボイド SetNo(INT NO){ この .NO = NOは; } } 次いでクラスTEST6主機能を定義します、として次の パッケージ。TEST5 パブリック クラスTEST6 { 公共 静的 ボイドメイン(文字列[]引数){ クラス <?>デモ= NULL ; 試み{ デモ = Class.forNameの( "test5.Test5" )。 }キャッチ(ClassNotFoundExceptionが電子){ // TODO自動生成されたcatchブロック e.printStackTrace(); } TEST5 TEST5 = 新しいTEST5()。 (test5.setName "暁明" ); test5.setNo( 001 )。 test5.setSex( "男" ); System.out.println(TEST5)。 } }
上記のプログラムの発見に以下の結果を実行します。
test5.Test5@e2cb55
もちろん、これは我々がオブジェクトクラスは、文字列のちょうど直接印刷のtoStringあるという単純な理由のために、取得したいのは、このプロパティTEST5の値ではありません、
デジタルに変換された文字、オブジェクト、オブジェクトのダイレクト印刷ハッシュコードを印刷することができます。以上の結果は、TEST5および対応するハッシュ値です。
あなたはtoStringメソッドをオーバーライドする必要がありTEST5各属性の値を取得したい場合。次のとおりです。
パブリック文字列のtoString(){ リターン "[" + この .nameの+ " "+ この .sex +" "+ この .NO +"]" 。 }
次のようにTEST5を記述する必要があります。
パッケージTEST5。 パブリック クラスTEST5 { プライベート文字列名; プライベート文字列のセックス。 プライベート int型はありません。 パブリック文字列のtoString(){ リターン "[" + この .nameの+ " "+ この .sex +" "+ この .NO +"]" 。 } 公共 ボイドショー(){ System.out.printlnは( "这是我的展示方法!!!!" ); } パブリック文字列のgetName(){ 戻り名。 } 公共 のボイドsetName(文字列名){ この .nameの= 名前。 } パブリック文字列getSex(){ 戻り性別; } 公共 ボイドsetSex(文字列性別){ この .sex = セックス。 } 公共 INT getNo(){ 戻りいいえ。 } 公共 ボイド setNo(INT NO){ この .NOは= いいえ。 } }
TEST6があるときの調査結果は、再び実行します。
[暁男1]
TEST5は、最初のクラスを定義します。そして、その取得、セット方法を書きました。
パッケージTEST5。 パブリック クラスTEST5 { プライベート文字列名; プライベート文字列のセックス。 プライベート int型はありません。 公共 のボイドショー(){ System.out.printlnは( "这是我的展示方法!!!!" ); } パブリック文字列のgetName(){ 戻り名。 } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } パブリック文字列getSex(){ 戻り性別; } 公共 のボイドsetSex(文字列セックス){ この .sex = セックス; } 公共 のint getNo(){ リターンなし; } 公共 ボイド SetNo(INT NO){ この .NO = NOは; } } 次いでクラスTEST6主機能を定義します、として次の パッケージ。TEST5 パブリック クラスTEST6 { 公共 静的 ボイドメイン(文字列[]引数){ クラス <?>デモ= NULL ; 試み{ デモ = Class.forNameの( "test5.Test5" )。 }キャッチ(ClassNotFoundExceptionが電子){ // TODO自動生成されたcatchブロック e.printStackTrace(); } TEST5 TEST5 = 新しいTEST5()。 (test5.setName "暁明" ); test5.setNo( 001 )。 test5.setSex( "男" ); System.out.println(TEST5)。 } }
上記のプログラムの発見に以下の結果を実行します。
test5.Test5@e2cb55
もちろん、これは我々がオブジェクトクラスは、文字列のちょうど直接印刷のtoStringあるという単純な理由のために、取得したいのは、このプロパティTEST5の値ではありません、
デジタルに変換された文字、オブジェクト、オブジェクトのダイレクト印刷ハッシュコードを印刷することができます。以上の結果は、TEST5および対応するハッシュ値です。
あなたはtoStringメソッドをオーバーライドする必要がありTEST5各属性の値を取得したい場合。次のとおりです。
パブリック文字列のtoString(){ リターン "[" + この .nameの+ " "+ この .sex +" "+ この .NO +"]" 。 }
次のようにTEST5を記述する必要があります。
パッケージTEST5。 パブリック クラスTEST5 { プライベート文字列名; プライベート文字列のセックス。 プライベート int型はありません。 パブリック文字列のtoString(){ リターン "[" + この .nameの+ " "+ この .sex +" "+ この .NO +"]" 。 } 公共 ボイドショー(){ System.out.printlnは( "这是我的展示方法!!!!" ); } パブリック文字列のgetName(){ 戻り名。 } 公共 のボイドsetName(文字列名){ この .nameの= 名前。 } パブリック文字列getSex(){ 戻り性別; } 公共 ボイドsetSex(文字列性別){ この .sex = セックス。 } 公共 INT getNo(){ 戻りいいえ。 } 公共 ボイド setNo(INT NO){ この .NOは= いいえ。 } }
TEST6があるときの調査結果は、再び実行します。
[暁男1]