• java数据域初始化


    1、在声明中赋值

    /**
     * Created by N3verL4nd on 2016/11/19.
     */
    
    class Test{
        private String str = "Hello World";
        public void show(){
            System.out.println(str);
        }
    }
    
    public class HelloWorld {
        public static void main(String[] args) {
            Test t = new Test();
            t.show();
        }
    }

    2、在构造器中设置值

    /**
     * Created by N3verL4nd on 2016/11/19.
     */
    
    class Test{
        private String str;
        Test(){
            str = new String("Hello World");
        }
        public void show(){
            System.out.println(str);
        }
    }
    
    public class HelloWorld {
        public static void main(String[] args) {
            Test t = new Test();
            t.show();
        }
    }

    3、使用初始化块

    /**
     * Created by N3verL4nd on 2016/11/19.
     */
    
    class Test{
        private String str;
        {
            str = new String("Hello World");
        }
        public void show(){
            System.out.println(str);
        }
    }
    
    public class HelloWorld {
        public static void main(String[] args) {
            Test t = new Test();
            t.show();
        }
    }
    
    只要构造类的对象,初始化块就会被执行。

    /**
     * Created by N3verL4nd on 2016/11/19.
     */
    
    class Test{
        {
            str = new String("111");
        }
        private String str = "222";
        Test(){
            str = new String("333");
        }
        public void show(){
            System.out.println(str);
        }
    }
    
    public class HelloWorld {
        public static void main(String[] args) {
            Test t = new Test();
            t.show();
        }
    }
    
    以上代码,调整初始化顺序,单步调试发现,构造函数最后被执行。

    在声明中赋值与在初始化块中设置值则按照顺序执行。

    /**
     * Created by N3verL4nd on 2016/11/19.
     */
    
    class Test{
        Test(){
            str = new String("333");
        }
    
        {
            str = new String("111");
        }
        private String str = "222";
    
        static {
            System.out.println(555);
        }
    
        public void show(){
            System.out.println(str);
        }
    }
    
    public class HelloWorld {
        public static void main(String[] args) {
            Test t = new Test();
            t.show();
        }
    }
    
    static块在类加载的时候被执行,也就是优先于main函数执行。顺序:进入main函数-->static块-->返回main函数。

    无main函数的Hello World

    public class HelloWorld {
        static {
            System.out.println("Hello World");
            System.exit(0);
        }
        /*public static void main(String[] args) {
            Test t = new Test();
            t.show();
        }*/
    }




    Keep it simple!
    作者:N3verL4nd
    知识共享,欢迎转载。
  • 相关阅读:
    第三周课程总结实验报告
    Java第二周学习总结
    2019春总结作业
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第二周课程总结
    2019春总结
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/6616297.html
Copyright © 2020-2023  润新知