Java 25天基础-DAY 06-面向对象-静态代码块

/*
静态代码快
格式:
static

    静态代码块中的执行语句。    

特点:随着类的加载而执行,只执行一次。优先于主函数执行。
用于给类进行初始化

*/
/*
class StaticCode
{

static
{
    System.out.println("a");
}

}
*/
class StaticCodeDemo
{

static
{
    System.out.println("b");
}

public static void main(String[] args) 
{
    //new StaticCode();
    //new StaticCode();
    System.out.println("over");

    new StaticCode2(4);
}
    static
{
    System.out.println("c");
}
//打印结果b,c,a over

// StaticCode s= null;//这个没有具体的指向,没有用到类中的内容,StaticCode不加载到内存。

}

class StaticCode2
{

int num = 9;
StaticCode2()    //构造函数
{//这不打印是因为没有创建过与它对应的对象
    System.out.println("d");
}
static
{//静态代码块,给类初始化。
    System.out.println("e");//这里不能访问num,因为num是非静态成员,当该代码执行的时候,num还没有存储进内存。
}

    
{//构造代码块,给对象初始化的。
    System.out.println("f"+this.num);
}

StaticCode2(int x)//构造函数,给对应对象初始化
{
    System.out.println("g"+num);
}
//打印结果:e,f,g

}

上一篇:Java反射机制应用实践


下一篇:Java动态代理学习1——静态代理