/*
静态代码快
格式:
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
}