Products
GG网络技术分享 2025-11-22 11:44 0
啊哈, 内部类就是在一个类里面再定义一个类,就像是套娃一样,一个类里面Neng套另一个类。内部类Neng访问外部类的全部成员,包括私有成员。

内部类分为两种, 一种是普通内部类,另一种是匿名内部类。普通内部类有点像是一个细小帮手,Neng在外部类里面被创建和用。而匿名内部类就像是一个超级英雄,不需要名字,直接就Neng用。
比如说 我们有一个外部类叫ZuoOuter,我们Neng在Outer里面定义一个内部类叫ZuoInner。InnerNeng访问Outer的全部成员。
public class Outer {
private int num = 10;
public class Inner {
public void print {
System.out.println;
}
}
}
实例内部类只Neng在它的外部类实例化之后创建。比如说我们创建了一个Outer的实例,然后通过这玩意儿实例来创建Inner的实例。
Outer outer = new Outer;
Outer.Inner inner = outer.new Inner;
inner.print; // 输出10
内部类Neng直接访问外部类的成员变量,就像它们是自己的成员一样。
静态内部类有点特殊,它们不需要外部类的实例就Neng被创建和用。静态内部类不Neng访问非静态成员。
public class Outer {
private static int num = 20;
public static class StaticInner {
public void print {
System.out.println;
}
}
}
匿名内部类是内部类的一种特殊形式, 它没有名字,只Neng在定义它的方法内部用。匿名内部类Neng继承一个类,也Neng实现一个接口。
public class Outer {
public void doSomething {
new Runnable {
@Override
public void run {
System.out.println;
}
}.run;
}
}
通过学内部类和匿名内部类,我们Neng轻巧松实新潮码的复用和优化。内部类Neng帮我们组织代码,搞优良代码的可读性。匿名内部类则Neng让我们在不创建新鲜类的情况下实现接口或继承类。
Demand feedback