javaエンティティ類はtoString方法を書き直さないとどうなりますか?

7448 ワード

まずObjectを知りたいです。
  • Object類のtoString方法
  •         クラス名(オブジェクトはクラスの一例)、atによる文字列を返します。 マーカー「@」とこのオブジェクトのハッシュコードの符号なし16進数は構成を表します。言い換えれば、この方法は文字列を返します。値は以下の通りです。
                    get Class().get Name()+'@'+Integer.toHexString(hashCode()
     
     
       2. オブジェクトに親がいない場合は、デフォルトでObjectを継承します。
            toStringメソッドを書き換えていない場合、デフォルトはObjectのtoStringメソッドの戻り値:クラス名@hahima値;
    package com.huojg.test;
    
    import java.io.Serializable;
    
    /*
     *          toString  
     *   。    。。。。
     * 
     * 
     * 
     * **/
    public class Test5{
        private String name;
        private String sex;
        private int No;
        
        public void Show(){
            System.out.println("        !!!!");
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public int getNo() {
            return No;
        }
        public void setNo(int no) {
            this.No = no;
        }
    }
    テストクラス
     
    package com.huojg.test;
    
    public class Test6 {
    public static void main(String[] args) {
        Class> demo= null;
        try {
            demo=Class.forName("com.huojg.test.Test5");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        Test5 test5= new Test5();
        test5.setName("xiaoming");
        test5.setNo(001);
        test5.setSex("man");
        System.out.println(test5);
    }
    }
    結果出力:
    com.huojg.test.Test5@304e94a4
    Test 5追加toStering方法
    package com.huojg.test;
    
    import java.io.Serializable;
    
    /*
     *          toString  
     *   。    。。。。
     * 
     * 
     * 
     * **/
    public class Test5{
        private String name;
        private String sex;
        private int No;
        
        public void Show(){
            System.out.println("        !!!!");
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public int getNo() {
            return No;
        }
        public void setNo(int no) {
            this.No = no;
        }
        @Override
        public String toString() {
            return "Test5 [name=" + name + ", sex=" + sex + ", No=" + No + "]";
        }
        
    }
    出力結果を再試験します。
    Test5 [name=xiaoming, sex=man, No=1]
     
    総括分析:
    クラスTest 5にToStringメソッドを書き換えていない場合。デフォルトはObjectのtoStringメソッド出力フォーマットです。
    Test 5でtoString方法を書き換えると、出力フォーマットは私達が定義した方法でこのオブジェクトを出力するので、このように理解できる。
    書き換えtoStringは、オブジェクトに対して印刷出力をフォーマットするものです。あなたがprintの対象がこのオブジェクトを必要とする場合、プリントする時に現れるのはどんな形ですか?toStringを必要とする戻りの形に書き直します。hashcodeを書き換えるのは主に対象間の比較方法を規定するためです。hash集合に対象を預けると、対象のhashcodeを比較して、二つのオブジェクトが同じオブジェクトかどうかを区別します。
    転載先:https://www.cnblogs.com/huojg-21442/p/7124823.html