classOutter{private String name ="test";privatestaticint age =20;
clss Inner{//private static int age = 50 错误静态变量不能在内部类中声明publicvoidfun(){
System.out.println(name);
System.out.println(age);}}}publicclassTest{publicvoid mian
}
二、静态内部类
静态内部类也可以类比静态方法
静态内部类不依赖于外部类的对象的创建,可以直接创建。
静态内部类不能访问外部类的非静态成员,但是可以自己创建静态成员
静态内部类是独立的,只是在别的类内部罢了
classwaibu{//静态内部类 staticint y =10;privateint x =20;publicstaticvoidfun2(){
System.out.println("qwe");}staticclassneibu{staticint p =30;publicvoidfun(){
System.out.println("asd");
System.out.println(y);}}}
classwaibu{//方法内部类 staticint y =10;privateint x =20;publicstaticvoidfun2(int k){
System.out.println("qwe");classneibu{int p =30;publicvoidfun(){
System.out.println("asd");
System.out.println(y);
k =80;
System.out.println(k);}}newneibu().fun();}}
四、匿名内部类
匿名内部类就是一个没有名字的方法内部类。因此特点与方法内部类完全一样,
除此之外还有两个自己的特点:
1.匿名内部类必须继承一个抽象类或者实现一个接口
2.匿名内部类没有构造方法,因为它没有类名
`interfacejiekou{voidfun3();}classwaibu{//匿名内部类 staticint y =10;privateint x =20;publicstatic jiekou fun2(int k){
System.out.println("qwe");returnnewjiekou(){int p =30;publicvoidfun(){
System.out.println("asd");
System.out.println(y);
System.out.println(k);}publicvoidfun3(){
System.out.println("匿名");}};}}