zoukankan      html  css  js  c++  java
  • java类创建时里面成员执行的先后顺序

    静态代码块在类第一次使用的时候执行一次,在构造函数执行之前执行。只要用到类,哪怕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.结果

  • 相关阅读:
    C++ 17
    C++ 11
    mysql统计某一个数据库中有几张表
    poj2636---Electrical Outlets(插线板)
    poj2608---几个字母映射到同一个数字
    poj2583---Series Determination
    poj2578---三个数中找出第一个大于168的
    poj2521---lose money
    poj2538---字符匹配(映射)
    poj2509---抽k根烟就换一支,求能抽烟的总数
  • 原文地址:https://www.cnblogs.com/wangjiaghe/p/7073625.html
Copyright © 2011-2022 走看看