• 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
    知识共享,欢迎转载。
  • 相关阅读:
    rn 安卓开发报错
    rn 打包如果真机或者模拟机打包编译报错
    fluter 导航以及其他
    fluter 相关布局组件
    fluter 万事皆组件。常用组件
    rn开发问题简要
    app配置环境和打包方式以及其他问题
    小程序大概的开发流程
    ant-design-pro 开发 基于react 框架涉及到技术你的本地环境需要安装 yarn、node 和 git。我们的技术栈基于 ES2015+、React、UmiJS、dva、g2 和 antd,
    unity打包的webgl结合react使用
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/6616297.html
Copyright © 2020-2023  润新知