您的位置:首页 > 职场人生

黑马程序员——面向对象(静态代码块)-第15天

2015-09-01 17:02 477 查看



[b]-----------
android培训java培训java学习型技术博客、期待与您交流! ------------

[/b]

面向对象(静态代码块)

格式:

static

{

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

}

特点:随着类的加载而执行,只执行一次。并优先于主函数。

用于给类进行初始化的。

class StaticCode

{

static

{

system.out.println("a");

}

}

class StaticCodeDemo

{

static

{

system.out.println("b"); //1先打印b

}

public static void main(String[] args)

{

new StaticCode();//2打印a。只执行一次类StaticCode中的静态代码块

new StaticCode();//这次不打印。

system.out.println("over");

}

//打印:

b

a

例子2:

class StaticCode

{

static

{

system.out.println("a");//1打印a

}

public staticvoid show()

{

system.out.println("showrun");//2打印show run

}

}

class StaticCodeDemo

{

static

{

}

public static void main(String[] args)

{

StaticCode.show();//静态,类名调用

}//当主函数也有静态代码块

static

{

system.out.println("c");//3然后打印c

}

}

//打印:

a

show run

c

例子3:

class StaticCode

{

StaticCode()

{

system.out.println("b");

}

static

{

system.out.println("a");

}

{//匿名代码块,也是随着类的加载而加载

system.out.println("c");

}

StaticCode(int x)

{

system.out.println("d");

}

public static void show()

{

system.out.println("show run");

}

}

class StaticCodeDemo

{

static

{

}

public static void main(String[] args)

{

new.StaticCode(4);

}

static

{

}

}

//打印

a

c

d

例子4:

class StaticCode

{

int num=9;

StaticCode()//构造函数

{

system.out.println("b");

}

Static//静态

{

system.out.println("a"+num);//编译错误。静态成员无法引用非静态成员num

}

}

例子5:

class StaticCode

{

int num=9;

StaticCode()//构造函数

{

system.out.println("b");

}

Static//静态代码块

{

system.out.println("a");

}

{//代码块

system.out.println("c"+this.num);//引用本类成员中的num,但是代码块优先于主函数存在,优先于int num=8;故此时this.num,默认值为空。

}

StaticCode(int x)

{

system.out.println("d");

}

}

class StaticCodeDemo

{

static

{

}

public static void main(String[] args)

{

new.StaticCode(4);

}

//打印

a

c

d
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: