面向对象(九)——块、静态块、对象的初始化

这节课我们来学习块、静态块、对象的初始化

 

什么叫块?

       被一对大括号{}包住的包括大括号这一部分就叫一个块

 

什么叫静态块?

       被static修饰的块

 

先看Demo:

 

public class BlockAndObjectInitialTeach {

    public int a;

    public static int s;

    static {
        System.out.println("静态块");
        s = 1;
    }

    {
        System.out.println("普通块");
        s = 2;
        a = 1;
    }

    public BlockAndObjectInitialTeach()
    {
        System.out.println("构造器");
        s = 3;
        a = 5;
    }

    public static void main(String[] args) {
        BlockAndObjectInitialTeach obj = new BlockAndObjectInitialTeach();
        System.out.println(obj.a);
        System.out.println(obj.s);
    }
}

 

运行结果:

静态块

普通块

构造器

5

3

 

结论:

对象的初始化顺序:

       先执行静态块

       然后执行普通块

       最后执行构造器

 

说明:

       静态块只会在该类的第一个对象被创建是执行一次,且只会执行一次

       静态块内无法访问非静态成员

       静态块内可以调用静态方法

       非静态快内可以访问属性和方法(不管是静态的还是非静态的)

 

 

猜你喜欢

转载自blog.csdn.net/qq_40061421/article/details/82897935