1.代码块
代码块分为普通代码块,构造块,静态块,同步代码块。
1.1普通代码块:直接在一个方法中出现的{}就成为普通代码块。
执行结果为:
1.2构造块:直接在类中定义的就是构造块,如图所示,注意构造块优先于构造方法执行.
执行结果为:
1.3静态块:使用static关键字声明的代码块,目的是用来为静态属性的初始化,其中执行顺序是:静态块优先主方法,静态块优先构造块,而且只执行一次。
执行结果为:
2.内部类:
关于内部类的文章查看[url=http://lavasoft.blog.51cto.com/62575/179484/]熔岩博客之内部类[/url]
代码块分为普通代码块,构造块,静态块,同步代码块。
1.1普通代码块:直接在一个方法中出现的{}就成为普通代码块。
public class CodeDemo01{
public static void main(String args[]){
{ // 普通代码块
int x = 10 ;
System.out.println("x = " + x) ;
}
int x = 100 ;
System.out.println("x = " + x) ;
}
};
执行结果为:
x = 10
x = 100
1.2构造块:直接在类中定义的就是构造块,如图所示,注意构造块优先于构造方法执行.
class Demo{
{ // 构造块
System.out.println("*********** 构造块 *************") ;
}
public Demo(){ // 构造方法
System.out.println("*********** 构造方法 *************") ;
}
};
public class CodeDemo02{
public static void main(String args[]){
new Demo() ;
new Demo() ;
new Demo() ;
}
};
执行结果为:
*********** 构造块 *************
*********** 构造方法 *************
*********** 构造块 *************
*********** 构造方法 *************
*********** 构造块 *************
*********** 构造方法 *************
1.3静态块:使用static关键字声明的代码块,目的是用来为静态属性的初始化,其中执行顺序是:静态块优先主方法,静态块优先构造块,而且只执行一次。
class Demo{
{ // 构造块
System.out.println("*********** 构造块 *************") ;
}
static{
System.out.println("*********** 类中的静态块 *************") ;
}
public Demo(){ // 构造方法
System.out.println("*********** 构造方法 *************") ;
}
};
public class CodeDemo03{
static{
System.out.println("*********** 主类中的静态块 *************") ;
}
public static void main(String args[]){
new Demo() ;
new Demo() ;
new Demo() ;
}
};
执行结果为:
*********** 主类中的静态块 ********
*********** 类中的静态块 **********
*********** 构造块 *************
*********** 构造方法 *************
*********** 构造块 *************
*********** 构造方法 *************
*********** 构造块 *************
*********** 构造方法 *************
2.内部类:
关于内部类的文章查看[url=http://lavasoft.blog.51cto.com/62575/179484/]熔岩博客之内部类[/url]