프로그래밍/JAVA
[JAVA] 내부 클래스(inner class)
WITN
2016. 8. 13. 23:27
1. 내부클래스(inner class)
클래스 내에 선언된 클래스 (서로 긴밀한 관계가 있음)
장점 : 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있음
코드의 복잡성을 줄일 수 있음(캡슐화)
2. 내부클래스 종류와 특징
변수의 선언위치에 따라 // 인스턴스 변수, 클래스 변수, 지역변수로 나누는 것처럼
클래스의 선언위치에 따라 // 인스턴스 클래스, 스태틱 클래스, 지역 클래스, 익명 클래스로 나뉜다.
3. 내부클래스의 선언
class Outer {
class InstanceInner {} // 인스턴스 클래스
static class StaticInner {} // 스태틱 클래스
void myMethod(){
class LocalInner {} // 지역 클래스
}
}
4. 내부클래스의 제어자와 접근성
인스턴스(Instance) 클래스와 스태틱(Static) 클래스는 외부클래스의 멤버변수와 같은 위치에 선언된다.
5. 익명클래스(anonymous class)
클래스에 이름이 없다.
클래스의 선언과 객체의 생성을 동시에 하기 때문에 한번만 사용될 수 있다. (일회용 클래스)
new 조상클래스 이름 () {
// 멤버변수 선언 //
}
또는
new 구현 인터페이스 이름 () { // 멤버변수 선언 //
}
이름이 없기 때문에 생성자도 없다.