天天看點

java中toString方法運用場景

public class Test {
    //main方法既是程式的入口也是程式的出口
    public static void main(String[] args) {//程式的入口
        User user = new User();
        System.out.println(user);
        System.out.println(user.toString());//對象中沒有重寫toString方法,重寫了則是調用自己的toString方法
        // 沒有重寫則預設調用Object類中的toString方法

        String string = "abc";
        System.out.println(string);//預設調用了String類的toString方法,傳回自己本身的值

        ArrayList<String> al = new ArrayList<>();
        al.add("a");
        System.out.println(al.toString());//預設調用AbstractCollection類的toString方法

        char[] c = {'s', 'g'};
        System.out.println(c);//字元數組,預設不是toString,就是本身字元

        int[] arr = new int[4];
        System.out.println(arr);//除了字元類型數組,其他類型數組列印數組名列印一定是位址值,
        // 預設調用Object類中的toString方法

    }//程式的出口
}

class User {
    @Override
    public String toString() {
        return "我是自己定義的toString方法";
    }
}
           

如上圖總結:調用了Object類的中toString方法則是位址值,注意char類型數組則是自己本身!

自定義對象如果重寫了toString方法則調用自己.否則調用Object類中的toString方法!