Java

내부 클래스(Inner class)

Beekei 2021. 9. 20. 00:05
반응형

내부 클래스란?

내부 클래스는 클래스 내에 선언된 클래스이다.

내부 클래스로 선언하면 두 클래스의 멤버든 간의 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 낮출 수 있다는 장점(캡슐화)이 있다.

내부 클래스는 외부 클래스를 제외하고는 다른 클래스에서 사용되지 않는 것이어야 한다.

class A {
	...
	class B {
		...
	}
}

내부 클래스의 종류와 특징

내부 클래스의 종류는 선언위치에 따른 변수의 종류와 같다.

내부 클래스의 선언

class Outer {
	class InstanceInner {} // 인스턴스 내부 클래스
	static class StaticInner {} // 스태틱 내부 클래스
	void method() { 
		class LocalInner {} // 지역 클래스
	}
}

익명 클래스(anonymous class)

익명 클래스는 선언과 객체의 생성을 동시에 하기 때문에 단 한번만 사용될 수 있고 오직 하나의 객체만을 생성할 수 있는 일회용 클래스이다.

이름이 없기 때문에 생성자도 가질 수 없으며, 조상 클래스의 이름이나 구현하고자 하는 인터페이스(Interface)의 이름을 사용해서 정의하기 때문에 하나의 클래스로 상속(inheritance)받는 동시에 인터페이스(Interface)를 구현하거나 둘 이상의 인터페이스를 구현할 수 없다.

오직 단 하나의 클래스를 상속(inheritance)받거나 단 하나의 인터페이스(Interface)만을 구현할 수 있다.

반응형