/**
* 静态内部类 静态内部类不外部类不能是静态的 并且静态内部类的方法只能访问静态变量或者静态方法
* */
public class StaticInner {
private static int a=110;
public static class Inner{
public void show(){
System.out.println(a);
}
}
}
/**
* 成员内部类 该内部类可以访问静态变量跟成员变量
* */
public class MenberInner {
private static int a=110;
private int b=110;
class Inner{
void show(){
System.out.println(a+b);
}
}
}
/**
* 局部内部类
* */
public class LocalInner {
int b=110;
public void show(){
final int a=110;
class Inner{
public void show1(){
System.out.println(a+b);
}
}
Inner inner=new Inner();
inner.show1();
}
}
public class NothingName {
public void show(Date dt){
System.out.println(dt.toLocaleString());
}
}
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StaticInner.Inner inner=new StaticInner.Inner();//静态内部类的实例化方式
inner.show();
MenberInner.Inner inner1=new MenberInner().new Inner();//成员内部类的实例化方式
inner1.show();
NothingName nothing=new NothingName();//匿名内部类,隐式继承一个类或者一个接口 经常当作方法的参数使用
nothing.show(new Date(){
public String toLocaleString() {
return "My name is Dawson";
}
});
LocalInner inner3=new LocalInner();//局部内部类
inner3.show();
}
}