Java 内部类如何用

avatar
作者
筋斗云
阅读量:0

在 Java 中,内部类是定义在另一个类的内部的类。它可以访问其外部类的所有成员(包括私有成员),这使得内部类在某些情况下非常有用。以下是使用 Java 内部类的基本步骤:

  1. 定义外部类。
public class OuterClass {     // 外部类的成员变量和方法 } 
  1. 在外部类内部定义内部类。
public class OuterClass {     public class InnerClass {         // 内部类的成员变量和方法     } } 

或者,你可以将内部类声明为 static,这样它就不需要外部类的实例即可存在:

public class OuterClass {     public static class InnerClass {         // 内部类的成员变量和方法     } } 
  1. 创建内部类的实例。

要创建内部类的实例,首先需要创建外部类的实例,然后通过该实例来创建内部类的实例。例如:

OuterClass outer = new OuterClass(); OuterClass.InnerClass inner = outer.new InnerClass(); 

或者,对于静态内部类,你可以直接使用类名来创建实例:

OuterClass.InnerClass inner = new OuterClass.InnerClass(); 
  1. 在内部类中访问外部类的成员。

内部类可以访问其外部类的所有成员,包括私有成员。例如:

public class OuterClass {     private int privateVar = 10;      public class InnerClass {         public void accessPrivateVar() {             System.out.println(privateVar); // 可以直接访问外部类的私有成员         }     } } 
  1. 内部类也可以访问其包含它的外部类的局部变量,但有一些限制。局部变量必须被声明为 final(在 Java 8 及以后的版本中,这个局部变量也可以是隐式 final,即没有显式地使用 final 关键字,但它仍然必须是不可变的)。例如:
public class OuterClass {     public void someMethod() {         final int localVar = 20; // 或者在 Java 8 及以后的版本中,可以省略 final 关键字          class InnerClass {             public void accessLocalVar() {                 System.out.println(localVar); // 可以访问外部类的局部变量             }         }          OuterClass.InnerClass inner = new OuterClass.InnerClass();         inner.accessLocalVar();     } } 

注意:在上面的例子中,localVar 被声明为 final,因此它是不可变的。如果你尝试修改 localVar 的值,编译器会报错。

广告一刻

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