Java中的內部類和外部類是兩種不同的類定義方式,它們有許多不同的特點和用途。
內部類是定義在另一個類中的類,在內部類中可以訪問外部類的成員變量和成員方法,內部類可以分為靜態內部類和非靜態內部類。非靜態內部類中不能定義靜態變量和靜態方法,但它可以訪問外部類的任何成員變量和方法。靜態內部類中可以定義靜態變量和靜態方法,但不能直接訪問外部類的非靜態變量和方法,需要通過創建外部類對象來訪問。
public class OuterClass { private int num; public void display() { InnerClass inner = new InnerClass(); inner.print(); } class InnerClass { public void print() { System.out.println("num is " + num); } } }
上面的例子中,InnerClass 是 OuterClass 的非靜態內部類,它可以直接訪問 outer.num,這是因為 InnerClass 是一個成員類,具有訪問權限。
另一方面,外部類是獨立的類,它可以訪問內部類的成員變量和成員方法,但內部類不能直接訪問外部類的成員變量和成員方法。外部類可以定義靜態變量和靜態方法,在靜態方法中不能使用 this 關鍵字,因為在靜態方法中沒有 this 對象。
public class OuterClass { private static int age; private int num; public static void display() { InnerClass inner = new InnerClass(); inner.print(); } static class InnerClass { public void print() { System.out.println("age is " + age); } } }
上面的例子中,InnerClass 是 OuterClass 的靜態內部類,它可以直接訪問 outer.age,但不能直接訪問 outer.num。
內部類和外部類都有自己的特點和用途,合理使用它們可以讓代碼更加簡潔和靈活。
上一篇vue歌曲可以剪輯
下一篇html特效代碼寫在哪里