[Java] Nested class
7108 ワード
Nested Class (Static inner class)
ネストされたクラスは、他のクラスの内部でメンバーとして定義されたクラスです.
staticキーワードを使用する内部クラスと同じ意味です.
Javaの例
ソースコード
public class OuterClass {
private int val; // 인스턴스 변수
private static int cnt = 1; // 클래스 변수 (static)
public OuterClass (int val) {
this.val = val;
}
// static inner class (Nested class)
public static class NestedClass {
public void displayOuterInfo() {
// System.out.println(val); <- 컴파일 오류
// static 클래스에서는 외부 클래스의
// 'static이 아닌 멤버' 사용 불가
System.out.println(cnt);
}
public static int num = 10; // static을 삭제하면 num 변수 사용 시 오류 발생
public static void print() { // static을 삭제하면 print() 호출 시 오류 발생
System.out.println("num = " + num);
}
}
}
public class Main {
public static voiod main(String[] args) {
System.out.println("Nested Class(중첩 클래스) : static inner class\n");
OuterClass.NestedClass nest = new OuterClass.NestedClass();
nest.displayOuterInfo();
System.out.println(OuterClass.NestedClass.num);
OuterClass.NestedClass.print();
}
}
実行結果
staticとして宣言された内部クラスでは、staticとして宣言された変数とメソッドしか使用できません.
Reference
この問題について([Java] Nested class), 我々は、より多くの情報をここで見つけました https://velog.io/@mimah/Java-Nested-classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol