1.普通代码块,在一个方法中直接用{},就称为普通代码块。
2.构造代码块,直接在类中用{},构造块会优先于构造方法执行。new 几次类的时候会执行多次。
3.静态块,使用static声明的代码块,静态块的主要目的是静态属性初始化。static{...}
new 几个次类的时候会执行一次。静态块优先于构造块执行。
4.在屏幕上输出helloworld,但不使用主方法。
public class Test{
static{
System.out.println("Hello World!!"):
System.exit(1);
}
}
5.内部类:
class Outer{
private String name = "HELLO WORLD!!!" ;
class Inner{
public void print(){
System.out.println("name = " + name) ;
}
};
public void fun(){
new Inner().print() ; // 打印信息
};
};
public class InnerClassDemo01{
public static void main(String args[]){
new Outer().fun() ;
}
};
//这样程序有点混乱,改进如下:
class Outer{
private String name = "HELLO WORLD!!!" ;
public void fun(){
new Inner(this).print() ; // 打印信息 };
public String getName(){
return this.name ;
}
};
class Inner{
private Outer out ;
public Inner(Outer out){
this.out = out ;
}
public void print(){
System.out.println("name = " + this.out.getName()) ;
}
};
public class InnerClassDemo02{
public static void main(String args[]){
new Outer().fun() ;
}
};
内部类唯一的好处就是可以方便访问外部类的私有成员,如果要在外部直接使用内部类的实例化对象:
外部类.内部类 内部类对象=外部类实例.new 内部类实例().
class Outer{
private String name = "HELLO WORLD!!!" ;
class Inner{
public void print(){
System.out.println("name = " + name) ;
}
};
};
public class InnerClassDemo03{
public static void main(String args[]){
Outer ut = new Outer() ; // 外部类实例
Outer.Inner in = out.new Inner() ; //实例化内部类对象
in.print() ;
}
};
一个内部类如果使用static关键字的话,则内部类将成为外部类。直接可以通过外部类.内部类访问
class Outer{
private static String name = "HELLO WORLD!!!" ;
static class Inner{
public void print(){
System.out.println("name = " + name) ;
}
};
};
public class InnerClassDemo04{
public static void main(String args[]){
Outer.Inner in = new Outer.Inner() ; // 实例化内部类对象
in.print() ;
}
};
内部类可以在任意的地方使用,在方法中声明:
class Outer{
private String name = "HELLO WORLD!!!" ;
public void fun(){
class Inner{
public void print(){
System.out.println("name = " + name) ;
}
}
new Inner().print() ;
}
};
public class InnerClassDemo05{
public static void main(String args[]){
new Outer().fun() ;
}
};
在方法中定義的內部類,可以直接訪問外部類的各方法成員,但如果訪問方法中的參數,則在參數上要使用final關鍵字申明。
class Outer{
private String name = "HELLO WORLD!!!" ;
public void fun(final int temp){
class Inner{
public void print(){
System.out.println("temp = " + temp) ;
System.out.println("name = " + name) ;
}
}
new Inner().print() ;
}
};
public class InnerClassDemo06{
public static void main(String args[]){
new Outer().fun(30) ;
}
};
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15127599/viewspace-664908/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15127599/viewspace-664908/