成员内部类可访问外部类所有成员,但需外部类实例才能创建;2. 静态内部类不依赖外部类实例,仅能访问静态成员;3. 局部内部类定义在方法内,可访问外部类成员及有效final变量;4. 匿名内部类用于继承父类或实现接口并立即实例化,适用于一次性使用场景。

在Java中,内部类(Inner Class)是指定义在一个类内部的类。使用内部类可以更好地组织代码,实现封装和逻辑隔离。Java中的内部类主要分为以下四种类型:
成员内部类是定义在外部类的成员位置上的类,与成员变量、成员方法同级。
特点:示例:
class Outer {
private int x = 10;
class Inner {
void show() {
System.out.println("x = " + x); // 可访问外部类私有成员
}
}
}
// 使用:
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.show();
使用 static 修饰的内部类称为静态内部类,也叫嵌套类。
立即学习“Java免费学习笔记(深入)”;
特点:示例:
class Outer {
static int value = 5;
static class Nested {
void display() {
System.out.println("value = " + value);
}
}
}
// 使用:
Outer.Nested nested = new Outer.Nested();
nested.display();
定义在外部类的方法或作用域块中的类,称为局部内部类。
特点:示例:
class Outer {
void method() {
final int localVar = 10;
class LocalInner {
void print() {
System.out.println("localVar = " + localVar);
}
}
LocalInner li = new LocalInner();
li.print();
}
}
没有名字的内部类,通常用于创建某个类或接口的子类对象,并立即实例化。
特点:示例:
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("匿名内部类实现Runnable");
}
}).start();
基本上就这些。每种内部类都有其适用场景,理解它们的区别有助于写出更清晰、高效的Java代码。
以上就是Java语法基础中内部类有哪些类型的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号