내부 글래스는 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 이러한 내부 클래스는 외부 클래스에 대해 두 개의 클래스가 서로 긴밀한 관계를 맺고 있을 때 선언할 수 있다.
1
2
3
4
5
6
7
8
|
// 내부 클래스(Inner class)의 위치
class Outer { // 외부 클래스
...
class Inner{ // 내부 클래스
...
}
...
}
|
cs |
내부 클래스의 장점
1. 내부 클래스에서 외부 클래스의 멤버에 손쉽게 접근할 수 있게 된다.
2. 서로 관련 있는 클래스를 논리적으로 묶어서 표현하여, 코드의 캡슐화를 증가시킨다.
3. 외부에서는 내부 클래스에 접근할 수 없어 코드의 복잡성을 감소 시킨다.
내부 클래스 | 설명 |
정적 클래스(Static) | static 키워드를 가진 클래스, 주로 외부 클래스의 클래스 메서드에 사용 |
인스턴스 클래스(Instance) | static 키워드를 가지지 않는 클래스, 주로 외부 클래스의 인스턴스 변수나 메서드에 사용 |
지역 클래스(Local) | 외부 글래스의 메서드나 초기화 블록에 선언된 클래스, 선언된 블록 내에서만 사용가능 |
익명 클래스(Anonymous) | 이름을 가지지 않는 클래스, 클래스 선언과 동지에 객체를 생성, 일회용 클래스, 생성자를 선언할 수 없고 오로지 단 하나의 클래스나 단 하나의 인터페이스를 상속받거나 구현가능, 제한적으로 사용되고 구현해야 하는 메서드가 매우 적은 클래스를 구현할 때 사용 |
위의 표는 내부 클래스의 종류에 대한 내용이다. 이 중에서 익명 클래스(Anonymous class)의 선언 방법은 아래와 같다.
1
2
3
4
5
|
// 내부 클래스의 종류인 익명 클래스(Anonymous class)
// 익명 클래스는 선언과 동시에 생성하여 참조변수에 대입한다.
클래스명 참조변수명 = new 클래스명(){
// 메서드 입력
};
|
cs |
'프로그래밍 공부 > Java' 카테고리의 다른 글
Java - Java API 클래스 : Object 클래스 (0) | 2020.02.21 |
---|---|
Java - Java의 다형성 예제 (0) | 2020.02.21 |
Java - 인터페이스(Interface) (0) | 2020.02.21 |
Java - 다형성(Polymorphism) (0) | 2020.02.20 |
Java - 상속(Inheritance) (0) | 2020.02.20 |