Programming Languages/JAVA
Java / 내포클래스
YUYA
2020. 12. 14. 15:25
내포클래스(Nested 클래스, 중첩클래스)
public class Outer{
public class Nested{
...
}
...
}
1) 클래스 안에 있는 클래스
2) Java에서는 크게 두 가지 타입
- 비정적 내포 클래스(non-static nested class, 내부클래스)
- java에서만 존재
- 정적 내포 클래스(static nested class)
- 종종 여기도 내부클래스라고 부르는 경우가 있지만, 자바에서는 구분하는 것이 좋음
- static 클래스라는 의미 아님 (자바에는 static 클래스가 없다)
- 바깥 클래스의 레퍼런스가 없다는 의미
3) 용도
- 서로 연관된 클래스 끼리 그룹 짓기
패키지로 그룹 짓는 것도 가능하지만 좀 더 긴밀하게 그룹(강한 캡슐화)
- 내포클래스는 바깥 클래스의 private 멤버에 접근 가능함. (반대는 불가능)
4) 접근제어자
- 내포클래스는 protected와 private도 허용 (내포 클래스 아니면 붙일 수 없음)
**
요즘에는 생각보다 내포 클래스 잘 사용 x
클래스마다 파일을 만드는 추세