1成员内部类
2局部内部类
3静态内部类
4匿名内部类
成员内部类:
成员内部类可以访问外部类的所有成员(成员变量、成员方法),而且可以无视外部类成员的访问权限
下面的代码做个示范:
class OutClass{
void xxx(){
System.out.println("我是外部类");
}
class InClass{
void rrr(){
System.out.println("我是内部类");
}
}
void test(){
InClass a=new InClass();
a.rrr();
}
}
public class Demo2 {
public static void main(String[] args) {
OutClass b=new OutClass();
OutClass.InClass a=b.new InClass();
a.rrr();
b.xxx();
b.test();
}
}
由此可得:
1内部类可以直接调用外部类的成员
2外部类如果要调用内部类的成员,需要实例化内部类对象再操作
3在主函数中,外部类的实例化很常规,而内部类的实例化需要在
左边加外部内名. 右边加外部类实例化对象.
局部内部类:
局部内部类和成员内部类很像,但是它存在于外部类的方法之中
静态内部类:
静态内部类和成员内部类也很相似,不过静态内部类只能访问外部类中的静态成员
匿名内部类:
我没搞明白,评论区帮我解释以下