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