Java 内部类咋定义

avatar
作者
筋斗云
阅读量:0

在 Java 中,内部类(Inner Class)是定义在另一个类的内部的类。根据内部类与外部类的关系,可以分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。下面分别介绍这四种类型的定义方法。

  1. 成员内部类(Member Inner Class): 成员内部类是定义在外部类的成员位置上的类,它可以访问外部类的所有成员(包括私有成员)。成员内部类的定义与普通类相同,只是在类名前面加上外部类的类名即可。例如:
public class OuterClass {     private int outerData = 0;      public class InnerClass {         public void accessOuterData() {             System.out.println("outerData = " + outerData);         }     } } 
  1. 局部内部类(Local Inner Class): 局部内部类是定义在方法或代码块中的类。局部内部类只能访问所在方法或代码块中的final变量(包括实际上被声明为final的变量,以及实际上没有被修改其值的变量)。局部内部类的定义与普通类相同,只是在类名前面加上外部类的类名即可。例如:
public class OuterClass {     public void createLocalInnerClass() {         final int localData = 0;          class LocalInnerClass {             public void accessLocalData() {                 System.out.println("localData = " + localData);             }         }          LocalInnerClass localInner = new LocalInnerClass();         localInner.accessLocalData();     } } 
  1. 匿名内部类(Anonymous Inner Class): 匿名内部类是没有名字的内部类,通常用于创建一次性使用的对象,例如实现接口或继承其他类。匿名内部类的定义与普通类相似,只是在类名位置使用关键字 new,并紧接着给出类的构造函数和实现代码。例如:
public class OuterClass {     public void createAnonymousInnerClass() {         new Object() {             public void printMessage() {                 System.out.println("This is an anonymous inner class.");             }         }.printMessage();     } } 
  1. 静态内部类(Static Inner Class): 静态内部类是定义在外部类的静态成员位置上的类。静态内部类不能访问外部类的非静态成员,但可以通过外部类实例访问静态成员。静态内部类的定义与普通类相同,只是在类名前面加上 static 关键字。例如:
public class OuterClass {     private static int outerStaticData = 0;      public static class StaticInnerClass {         public void accessOuterStaticData() {             System.out.println("outerStaticData = " + outerStaticData);         }     } } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!