Language/Java
[Java] 내부클래스
Hoplin
2022. 1. 7. 14:03
반응형
내부클래스란
내부 클래스는 클래스 내에 선언되는 클래스 형태이다. 내부 클래스의 장점은 아래 두가지로 볼 수 있다.
- 내부 클래스에서 외부클래스의 멤버들을 쉽게 접근할 수 있다
- 코드의 복잡성을 줄 일 수 있다.
package Interface2;
class A{
class B{
}
}
내부 클래스의 종류, 특징
내부 클래스종류는 변수 선언위치에 따른 종류와 동일하다. 종류와 특징은 아래와 같다.
내부클래스 | 특징 |
인스턴스 클래스 | 멤버변수 선언위치와 동일한 위치에 선언, 인스턴스 멤버처럼 다뤄진다. 주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용 |
스태틱 클래스 | static멤버처럼 다루어진다. static메소드에서 사용될 목적으로 사용 |
지역 클래스 | 외부클래스 메소드나, 초기화 블록 안에 선언, 선언된 영역 내부에서만 사용 가능 |
익명 클래스 | 클래스 선언, 객체생성을 동시에 하는 무명 클래스(일회용이다) |
package Interface2;
class Outer{
class InstanceInner{}// 인스턴스 클래스
static class StaticInner{} // static 클레스
void myMethod(){
class LocalInner{} // 지역 클래스
}
}
내부 클래스도 클래스이므로, abstract, final같은 접근제어자 사용이 가능하다. 또한 멤버변수처럼 private, protected접근 제어자도 사용이 가능하다. 다만 내부 클래스에서 static클래스만, static멤버변수를 가질 수 있다. 다만, final static으로 선언되는 상수는 다른 내부클래스에서도 사용이 가능하다.
반응형