Java中的外部類指的是在一個java文件中定義的頂層類,該類可以被其他java文件中的類使用或繼承。在Java中,每個java源文件只能定義一個外部類,且該類的名稱必須與文件名相同。
//Example.java文件中的外部類 public class Example { //外部類的成員變量和方法 }
一個java文件中可以同時定義多個類,包括外部類和內部類。內部類可以訪問外部類的成員變量和方法,而外部類不能直接訪問內部類的成員變量和方法。
//Example.java文件中的外部類和內部類 public class Example { //外部類成員變量和方法 //內部類 class InnerClass { //內部類成員變量和方法 //內部類訪問外部類成員變量和方法 public void accessOuter() { //通過Example.this訪問外部類的成員變量和方法 } } }
外部類和內部類的訪問修飾符一樣,都可以使用public、protected、default和private,不同的是內部類還可以使用static修飾。
//Example.java文件中的靜態內部類 public class Example { //外部類成員變量和方法 //靜態內部類 static class StaticInnerClass { //內部類成員變量和方法 } }
外部類和內部類還可以互相訪問對方的私有成員,因為它們在同一個文件中編譯。
//Example.java文件中的外部類和內部類訪問私有成員 public class Example { private int outerPrivate = 1; class InnerClass { private int innerPrivate = 2; public void accessOuterPrivate() { //內部類訪問外部類的私有成員 int outer = outerPrivate; } } public void accessInnerPrivate() { InnerClass inner = new InnerClass(); //外部類訪問內部類的私有成員 int inner = inner.innerPrivate; } }