オブジェクト内のtoString

このコードを見ることができます

public class Demo1 {
    static int i=1;

    public static void main(String[] args) {
        System.out.println("love"+new Demo1());
        Demo1 a=new Demo1();
        a.i++;
        System.out.println("me"+a.i);
    }
    public String toString(){
        System.out.print("I ");
        return "java";
    }
}

出力結果
ここに画像の説明を挿入
読んだ後、出力がJavaを愛している理由について質問がありますか
。まず、System.out.printlnで愛した後の新しいDemo1を見てみましょう。ここでSystem.outでそれを伝えたいと思います。 .printlnの新しいオブジェクトは、最初にこのオブジェクトのtoStringメソッドを実行します。このメソッドがオーバーライドされると、オーバーライドされたメソッドが実行されますが、急がれることはなく、returnパラメーターは前のprintの後に返されます。したがって、最初にtoStringのメソッドを実行してIを出力し、次にloveを出力します。loveが出力されたら、toStringのjavaをSystem.out.printlnに返して出力します。
新しいDemo1でiを呼び出しましょう。iは静的変数であるため、ロード時に最初にロードされ、自己加算後に2を返します。

おすすめ

転載: blog.csdn.net/MCYZSF/article/details/89877977