zoukankan      html  css  js  c++  java
  • 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
    知识共享,欢迎转载。
  • 相关阅读:
    简易高重用的jdbcutils工具封装实现类以及简易连接池实现
    http header 具体解释
    zoj 3888 Twelves Monkeys 二分+线段树维护次小值
    hyperLink的定制
    document.body.clientHeight的取值
    在循环中创建网页元素的问题
    mongo db 启动停止
    myeclipse 2014破解
    weblogic 集群部署时上传jsp不更新问题
    Spring classPath:用法
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/6616297.html
Copyright © 2011-2022 走看看