码迷,mamicode.com
首页 > 编程语言 > 详细

java类创建时里面成员执行的先后顺序

时间:2017-06-24 17:26:12      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:--   构造   []   也会   ring   结果   静态代码块   ima   stat   

 

静态代码块在类第一次使用的时候执行一次,在构造函数执行之前执行。只要用到类,哪怕new对象(比如只声明变量)也会被执行,且只执行一次。一般用于对类进行初始化。

 

先执行静态代码块,静态成员(谁在前就先执行谁)。无论new几次 静态代码块和静态成员只执行一次

再执行成员变量,最后构造函数。new几次 成员变量和构造函数 执行几次。

代码:

1.声明StaitcBlock类

public class StaticBlock1 {
    private static String TAG="333";

    //成员变量
    private  int age1=setAge();

    //构造函数
    public  StaticBlock1(){
        Log.e(TAG, "构造函数");
    }

    //静态代码块
    static{
        Log.e(TAG, "静态代码块 " );
    }

    //静态成员
    private static int age2=setAge2();


    public static void main(String[] args) {
        StaticBlock1 b1=new StaticBlock1();

        StaticBlock1 b2=new StaticBlock1();
    }



    private int setAge(){
        Log.e(TAG, "getAge1: 方法1" );
        return 3;
    }

    private static int setAge2(){
        Log.e(TAG, "getAge2: 方法2" );

        return 333;
    }

}

2.在Activity中创建StaticBoloc类

 Log.e(TAG, "onCreate: ------------------------开始" );
        StaticBlock1 b1=new StaticBlock1();
        Log.e(TAG, "----------------------------------------------------------------------------------" );
        StaticBlock1 b2=new StaticBlock1();

 

3.结果

技术分享

 

java类创建时里面成员执行的先后顺序

标签:--   构造   []   也会   ring   结果   静态代码块   ima   stat   

原文地址:http://www.cnblogs.com/wangjiaghe/p/7073625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!