为什么在使用初始化器、构造函数和方法调用时打印语句按此顺序执行?

2023-12-12

这是我正在运行的代码,该代码的输出是 4 2 1 3 ,有人可以解释一下为什么结果是按这个顺序打印的。

public class goFuncTest {
        goFuncTest() 
        {
             System.out.print("1 ");                
        } 
        {               
             System.out.print("2 ");            
        } 
        public static void main(String[] args)
        { 

            new goFuncTest().go(); 
        } 
        void go()
        { 
             System.out.print("3 ");                
        } 
        static
        { 
            System.out.print("4 ");                 
        } 

    } 

根据您最近的问题编辑,您的输出将为 4 2 1 3。首先运行静态初始化程序,然后运行实例初始化程序。如果您有多个相同类型的初始值设定项,它们将按照它们在类中出现的顺序执行。

// static initializer first
static {
  System.out.print("4 ");
}

// then instance initializer
{ 
  System.out.print("2 "); 
} 

接下来构造函数启动,它会给出:

goFuncTest() 
{
  System.out.print("1 "); 
} 

最后调用该方法:

void go()
{ 
  System.out.print("3 "); 
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在使用初始化器、构造函数和方法调用时打印语句按此顺序执行? 的相关文章

随机推荐