중첩 클래스
- 클래스는 긴밀한 관계를 맺고, 그 중 특정한 클래스와 관계를 맺을 경우 클래스 내부에 선언하는것이 좋다.
- nested class 중첩 클래스 : 클래스 내부에 선언한 클래스
중첩 클래스의 생성
- 멤버 : 클래스 내부에 생성한 모든 요소
- 멤버 종류 : 인스턴스 멤버(인스턴스화 되어야 사용 가능한 멤버), 스태틱 멤버(인스턴스화 없이 사용 가능한 멤버. 클래스에 접근하여 즉시 사용 가능하다.)
- 구분하는 방법 : 메소드는 새로운 중괄호를 넣고 실행 코드가 들어온다.
- 중첩클래스를 호출하기 위해서는 상위 클래스가 객체화 되어있어야 한다.
- 중첩 클래스의 인스턴스는 다음과 같다.
Nested nes = new Nested();
Nested.NesInner inner = nes.new NesInner();
- 인스턴스 멤버에서는 인스턴스 멤버 사용 필요. 인스턴스 멤버에 스태틱 멤버 사용을 불가능하다.
- 중첩 클래스의 내부 클래스 호출 시 상위 클래스가 인스턴스 되어야 한다.
회원가입 필요한 사이트
- 공공데이터 포털
- 카카오 개발자 문서
- 네이버 클라우드 플랫폼
- 오라클 클라우드← 미리 가입하면 좋음
중첩 클래스의 예시
import pack01.nested.CDNested.CD1.Test;
import pack01.nested.CDNested.CD1.Test.CD4.CD5;
public class CDNested {
public static class CD1 {
public class Test {
String str = "변수";
public class CD4 {
public class CD5 {
private class CD2 {
void method2() {
System.out.println("str과 메소드 출력시 성공");
}
}
public CD5() {
CD2 cd2 = new CD2();
cd2.method2();
}
}
}
}
}
public static void main(String[] args) {
Test test = new CDNested.CD1().new Test();
System.out.println(test.str);
CD5 cd5 = test.new CD4().new CD5();
}
}
'공부일지' 카테고리의 다른 글
231025 (Java) (0) | 2023.10.26 |
---|---|
231025 (Oracle) (0) | 2023.10.25 |
231024 (Oracle) (0) | 2023.10.24 |
231019 (jQuery) (0) | 2023.10.19 |
231018 (jQuery) (1) | 2023.10.18 |