黑马程序员技术交流社区

标题: 代码块,显示初始化,构造函数初始化的执行顺序 [打印本页]

作者: 踏云    时间: 2014-10-7 23:58
标题: 代码块,显示初始化,构造函数初始化的执行顺序
/*
        代码块,显示初始化,构造函数初始化的执行顺序,
        1.代码块和显示初始化的赋值都是在构造函数中执行的(java编译器完成的),而且优先于构造函数的赋值。
        2.代码块和显示初始化的执行顺序是按照类定义中的前后顺序决定的。
        3.编译时,java编译器将会把属性移动到最前面(但显示初始化是在构造函数中执行的)。
*/

class  Demo7
{
        public static void main(String[] args)
        {
                Test1 test1=new Test1();
                Test2 test2=new Test2();
                Test3 test3=new Test3();
                Test4 test4=new Test4();
        }
}

class Test1
{
        int i=10000;

        {
                i=20000;
        }

        public test(){
                i=30000;
        }
       
        //输出i为30000因为原则1
        public void printi(System.out.println(i));
}


class Test2
{
        public test(){
                i=30000;
        }

        int i=10000;

        {
                i=20000;
        }
       
        //输出i为30000因为原则1
        public void printi(System.out.println(i));
}

class Test3
{
        int i=10000;
        {
                i=20000;
        }
        //输出i为20000因为原则2
        public void printi(System.out.println(i));
}

class Test4
{
        {
                i=20000;
        }
        int i=10000;
        //输出i为10000因为原则2
        public void printi(System.out.println(i));
}


作者: MR.Sun    时间: 2014-10-8 08:54
你是在传智上基础班么?这个题目。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2