공부/Java

[Java] 클래스 내부에 선언하는 중첩 클래스

ByeongJun 2023. 4. 9. 22:13
반응형

중첩클래스

클래스 내부에 선언한 클래스

 

 

 

클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 

특정 클래스만 관계를 맺을 경우에는 중첩 클래스로 선언하는 것이 유지보수에 도움이 된다. 

 

또한 클래스의 멤버(속성을 표현하는 필드(field) / 기능을 표현하는 메소드(method))를 쉽게 사용할 수 있고

외부에는 중첩 관계 클래스를 감춰서 코드의 복잡성을 줄일 수 있다.

 

종류

선언 위치에 따른 분류 선언 위치 객체 생성 조건
멤버 클래스 인스턴스
멤버 클래스
class A {
	class B { ... }
}
A 객체를 생성해야만
B 객체를 생성 가능
정적
멤버 클래스
class A {
	static class B { ... }
}
A 객체를 생성하지 않아도
B 객체 생성 가능
로컬 클래스
class A {
	void method() {
 	   class B { ... }
	}
}
method가 실행할 때만
B 객체 생성 가능

 

장점

  • 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
  • 코드의 복잡성을 줄일 수 있다. (캡슐화)

 

반응형