java怎么定義內(nèi)部類

小億
81
2024-09-26 02:59:57
欄目: 編程語言

在Java中,可以通過以下兩種方法定義內(nèi)部類:

  1. 成員內(nèi)部類(Member Inner Class):這是最常見的內(nèi)部類類型,它位于外部類的成員位置,與成員變量、成員方法同級(jí)別。成員內(nèi)部類可以訪問外部類的所有成員,包括私有成員。
public class OuterClass {
    private int outerVar;

    public class InnerClass {
        public void accessOuterMembers() {
            System.out.println("Accessing outer class variable: " + outerVar);
        }
    }

    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.accessOuterMembers();
    }
}
  1. 靜態(tài)內(nèi)部類(Static Nested Class):靜態(tài)內(nèi)部類不依賴于外部類的實(shí)例,它使用外部類名作為前綴進(jìn)行訪問。靜態(tài)內(nèi)部類只能訪問外部類的靜態(tài)成員,不能訪問外部類的非靜態(tài)成員。
public class OuterClass {
    private int outerVar;

    public static class StaticNestedClass {
        public void accessOuterStaticMember() {
            System.out.println("Accessing outer class static variable: " + outerVar);
        }
    }

    public static void main(String[] args) {
        OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass();
        nested.accessOuterStaticMember();
    }
}

這兩種內(nèi)部類都可以訪問外部類的成員,但靜態(tài)內(nèi)部類對(duì)外部類的實(shí)例沒有依賴關(guān)系。在實(shí)際應(yīng)用中,可以根據(jù)需求選擇合適的內(nèi)部類類型。

0