This question already has answers here:
What's the difference between an instance initializer and a constructor?
                                
                                    (3个答案)
                                
                        
                6年前关闭。
            
        

我无法理解为什么在“ c”之前打印“ y” ...我在这里遗漏了什么吗?
请帮助

public class Sequence {

    Sequence() {
        System.out.print("c ");
    }

    {
        System.out.print("y ");
    }

    public static void main(String[] args) {
        new Sequence().go();
    }

    void go() {
        System.out.print("g ");
    }

    static {
        System.out.print("x ");
    }
}

最佳答案

以下说明应有帮助:(按顺序执行)


static {}:加载类时执行此块。这称为静态初始化块。
{}:每次创建该类的新实例时,都会执行此块。这称为实例初始化块。
Sequence():在上面的块之后,构造函数在创建新实例时执行。

关于java - 基于输出的排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17006651/

10-11 19:24