成员内部类(非静态内部类,静态内部类),匿名内部类
非静态内部类

public class 内部类 {
public static void main(String[] args) {
//先创建外部类实例,再用外部类实例创建内部类实例
Outer.Inner inner =new Outer().new Inner();
inner.show();
Outer outer =new Outer;
Outer.Inner inner=outer.new Inner();
}
class Outer{
private int num=10;
public void method() {
}
class Inner{
int num=20;
public void show() {
int num=30;
System.out.println("外部类的内容"+" "+Outer.this.num);
System.out.println("内部类的内容"+" "+this.num);
System.out.println(num);
}
}
}

静态内部类、
public class 内部类{
public static void main(String[] args) {
//通过 new 外部类。内部类();来创建对象
Outer.Inner inner =new Outer.Inner();
inner.method();
}
}
class Outer{
static class Inner{
public void method() {
System.out.println("静态内部类");
}
}
}
匿名内部类

public class 匿名内部类 {
public static void text01(AA a) {
a.aa();
}
public static void main(String[] args) {
匿名内部类.text01(new AA() {
@Override
public void aa() {
// TODO Auto-generated method stub
System.out.println("匿名内部类.main(...).new AA() {...}.aa()");
}
});
}
}
interface AA{
void aa();
}
本文探讨了Java中的非静态内部类、静态内部类和匿名内部类的区别,包括创建方式、实例化过程和应用场景。通过实例代码解析它们的工作原理和使用技巧。
3673

被折叠的 条评论
为什么被折叠?



