반응형
내부 클래스란?
내부 클래스는 클래스 내에 선언된 클래스이다.
내부 클래스로 선언하면 두 클래스의 멤버든 간의 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 낮출 수 있다는 장점(캡슐화)이 있다.
내부 클래스는 외부 클래스를 제외하고는 다른 클래스에서 사용되지 않는 것이어야 한다.
class A {
...
class B {
...
}
}
내부 클래스의 종류와 특징
내부 클래스의 종류는 선언위치에 따른 변수의 종류와 같다.
내부 클래스의 선언
class Outer {
class InstanceInner {} // 인스턴스 내부 클래스
static class StaticInner {} // 스태틱 내부 클래스
void method() {
class LocalInner {} // 지역 클래스
}
}
익명 클래스(anonymous class)
익명 클래스는 선언과 객체의 생성을 동시에 하기 때문에 단 한번만 사용될 수 있고 오직 하나의 객체만을 생성할 수 있는 일회용 클래스이다.
이름이 없기 때문에 생성자도 가질 수 없으며, 조상 클래스의 이름이나 구현하고자 하는 인터페이스(Interface)의 이름을 사용해서 정의하기 때문에 하나의 클래스로 상속(inheritance)받는 동시에 인터페이스(Interface)를 구현하거나 둘 이상의 인터페이스를 구현할 수 없다.
오직 단 하나의 클래스를 상속(inheritance)받거나 단 하나의 인터페이스(Interface)만을 구현할 수 있다.
반응형
'Java' 카테고리의 다른 글
메서드(Method)에 예외(Exception) 선언하기 (0) | 2021.09.27 |
---|---|
예외처리(Exception handling) (0) | 2021.09.20 |
인터페이스(Interface) (0) | 2021.09.20 |
추상클래스(Abstract class) (0) | 2021.09.19 |
다형성(polymorphism) (0) | 2021.09.16 |