// Java 内部类示例
class OuterClass {
// 成员内部类
class InnerClass {
void display() {
System.out.println("这是成员内部类的方法");
}
}
// 静态内部类
static class StaticInnerClass {
void display() {
System.out.println("这是静态内部类的方法");
}
}
// 局部内部类
void createLocalInnerClass() {
class LocalInnerClass {
void display() {
System.out.println("这是局部内部类的方法");
}
}
LocalInnerClass localInner = new LocalInnerClass();
localInner.display();
}
// 匿名内部类
void createAnonymousInnerClass() {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("这是匿名内部类的方法");
}
};
runnable.run();
}
}
public class Main {
public static void main(String[] args) {
// 创建成员内部类对象
OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
innerObject.display();
// 创建静态内部类对象
OuterClass.StaticInnerClass staticInnerObject = new OuterClass.StaticInnerClass();
staticInnerObject.display();
// 调用方法创建局部内部类对象并调用其方法
outerObject.createLocalInnerClass();
// 调用方法创建匿名内部类对象并调用其方法
outerObject.createAnonymousInnerClass();
}
}
成员内部类 (InnerClass):定义在外部类的内部,可以直接访问外部类的所有成员(包括私有成员)。创建成员内部类的对象时,需要先创建外部类的对象。
静态内部类 (StaticInnerClass):使用 static 关键字修饰的内部类。它不能直接访问外部类的非静态成员,但可以通过静态上下文访问静态成员。创建静态内部类的对象不需要创建外部类的对象。
局部内部类 (LocalInnerClass):定义在方法、构造函数或代码块中的内部类。它的作用域仅限于定义它的代码块内。局部内部类不能使用 static 关键字,并且只能访问被 final 或 effectively final 修饰的局部变量。
匿名内部类 (Anonymous Inner Class):没有名字的内部类,通常用于实现接口或继承类,并且只使用一次。匿名内部类可以简化代码,尤其是在需要传递短小的行为时。
下一篇:java 注解
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站