Java 內(nèi)部類如何用

小樊
82
2024-10-24 09:13:18
欄目: 編程語言

在 Java 中,內(nèi)部類是定義在另一個(gè)類的內(nèi)部的類。它可以訪問其外部類的所有成員(包括私有成員),這使得內(nèi)部類在某些情況下非常有用。以下是使用 Java 內(nèi)部類的基本步驟:

  1. 定義外部類。
public class OuterClass {
    // 外部類的成員變量和方法
}
  1. 在外部類內(nèi)部定義內(nèi)部類。
public class OuterClass {
    public class InnerClass {
        // 內(nèi)部類的成員變量和方法
    }
}

或者,你可以將內(nèi)部類聲明為 static,這樣它就不需要外部類的實(shí)例即可存在:

public class OuterClass {
    public static class InnerClass {
        // 內(nèi)部類的成員變量和方法
    }
}
  1. 創(chuàng)建內(nèi)部類的實(shí)例。

要?jiǎng)?chuàng)建內(nèi)部類的實(shí)例,首先需要?jiǎng)?chuàng)建外部類的實(shí)例,然后通過該實(shí)例來創(chuàng)建內(nèi)部類的實(shí)例。例如:

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

或者,對(duì)于靜態(tài)內(nèi)部類,你可以直接使用類名來創(chuàng)建實(shí)例:

OuterClass.InnerClass inner = new OuterClass.InnerClass();
  1. 在內(nèi)部類中訪問外部類的成員。

內(nèi)部類可以訪問其外部類的所有成員,包括私有成員。例如:

public class OuterClass {
    private int privateVar = 10;

    public class InnerClass {
        public void accessPrivateVar() {
            System.out.println(privateVar); // 可以直接訪問外部類的私有成員
        }
    }
}
  1. 內(nèi)部類也可以訪問其包含它的外部類的局部變量,但有一些限制。局部變量必須被聲明為 final(在 Java 8 及以后的版本中,這個(gè)局部變量也可以是隱式 final,即沒有顯式地使用 final 關(guān)鍵字,但它仍然必須是不可變的)。例如:
public class OuterClass {
    public void someMethod() {
        final int localVar = 20; // 或者在 Java 8 及以后的版本中,可以省略 final 關(guān)鍵字

        class InnerClass {
            public void accessLocalVar() {
                System.out.println(localVar); // 可以訪問外部類的局部變量
            }
        }

        OuterClass.InnerClass inner = new OuterClass.InnerClass();
        inner.accessLocalVar();
    }
}

注意:在上面的例子中,localVar 被聲明為 final,因此它是不可變的。如果你嘗試修改 localVar 的值,編譯器會(huì)報(bào)錯(cuò)。

0