「Java 内部クラスの役割に基づく徹底分析」では、Java 内部クラスについてある程度理解できますが、内部クラスにはまだ注意深く研究する価値のある場所がいくつかあります...
以下に、Java 内部クラスに関するいくつかのことを要約して共有します。
1 つ目: 静的内部クラスは静的メンバーを持つことができますが、非静的内部クラスは静的メンバーを持つことができません。
これをどのように理解すればよいでしょうか?
以下のコードを見てください。
パブリック クラス テスト {
プライベート int 数値 = 1;
// 非静的内部クラスは非静的メンバーを持つことができます
プライベート クラス InnerTest {
// エラー 非静的内部クラスは静的メンバーを持つことができません
// プライベート静的 int inNumber = 2;
プライベート int inNumber = 2;
public InnerTest() {
setNumber(2);
inNumber = inNumber + 数値;
System.out.println("innerTest---" + inNumber);
}
}
//テストのプライベートメソッド
private void setNumber(int 数値) {
this.number = 数値;
}
//コンストラクタ
public Test() {
InnerTest in = new InnerTest();
System.out.println("テスト");
}
public static void main(String[] args) {
テスト test = new Test();
// innerTest---4
// テスト
}
}
パブリック クラス テスト {
プライベート静的整数 = 1;
プライベート文字列名 = "テスト";
// 静的な内部クラス
プライベート静的クラス InnerTest {
// 静的内部クラスは非静的メンバーを持つことができます
プライベート int inNumber = 2;
public InnerTest() {
//静的内部クラスは外部クラスの静的メンバーにアクセスできる
setNumber(2);
inNumber = inNumber + 数値;
System.out.println("innerTest---" + inNumber);
//エラー静的内部クラスは外部クラスの非静的メンバーにアクセスできません
//System.out.println(名前);
}
}
// Test の静的プライベート メソッド
private static void setNumber(int n) {
番号 = n;
}
//コンストラクタ
public Test() {
InnerTest in = new InnerTest();
System.out.println("テスト");
}
public static void main(String[] args) {
テスト test = new Test();
// innerTest---4
// テスト
}
}
分かりやすいでしょうか…
要約すると: