내부 클래스 (inner class)란
내부 클래스(중첩 클래스)는 클래스 안에 클래스를 정의한 것입니다.
클래스에 다른 클래스를 선언하는 이유는 두 클래스가 서로 긴밀한 관계에 있기 때문입니다.
한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점을 가지고 있습니다.
※ 기본 구조
class A { //외부 클래스
class B // 내부 클래스
{
//멤버 변수, 메소드, 생성자
}
}
- 이때 내부 클래스인 B는 외부 클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않는 것이어야 합니다.
- 내부 클래스는 여러개 있어도 상관이 없으며, 단 이름은 달라야 합니다.
- Inner클래스에서 Outer클래스 멤버에는 접근이 가능하지만,
Outer클래스에서 Inner클래스 멤버에는 접근이 불가능 합니다. ( 다만, Inner 클래스 객체 생성 후에는 접근이 가능합니다.)
* Inner class 종류 *
① instance class
- 외부 클래스의 멤버 변수 위치에 선언합니다.
- 멤버 변수처럼 다뤄집니다.
② static class
- 외부 클래스의 멤버 변수 위치에 선언합니다.
- static 멤버처럼 다뤄집니다.
- 외부 클래스 객체 생성 없이 내부 클래스 객체 생성이 가능합니다.
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 예외처리 (2) throws (0) | 2017.09.05 |
---|---|
[JAVA] 추상 클래스(abstract) (0) | 2017.08.28 |
[JAVA] 예외처리 (1) try ~ catch, finally (0) | 2017.08.25 |
[JAVA] 인터페이스(interface) (0) | 2017.08.25 |
[JAVA] getter/setter 메소드 (0) | 2017.08.25 |