본문 바로가기

공부일지

231024 (Java)

중첩 클래스

  • 클래스는 긴밀한 관계를 맺고, 그 중 특정한 클래스와 관계를 맺을 경우 클래스 내부에 선언하는것이 좋다.
  • 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