반응형
내부클래스란
내부 클래스는 클래스 내에 선언되는 클래스 형태이다. 내부 클래스의 장점은 아래 두가지로 볼 수 있다.
- 내부 클래스에서 외부클래스의 멤버들을 쉽게 접근할 수 있다
- 코드의 복잡성을 줄 일 수 있다.
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으로 선언되는 상수는 다른 내부클래스에서도 사용이 가능하다.
반응형
'Language > Java' 카테고리의 다른 글
[Java] 예외처리 (0) | 2022.01.08 |
---|---|
[Java]클래스간의 관계 결정하기 (0) | 2022.01.07 |
[Java]인터페이스 (0) | 2022.01.07 |
[Java] 추상화란? (0) | 2022.01.04 |
[Java] 다형성(polymorphism) (0) | 2022.01.04 |