본문 바로가기

프로그래밍 공부/Java

Java - 내부 클래스(Inner class)

내부 글래스는 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 이러한 내부 클래스는 외부 클래스에 대해 두 개의 클래스가 서로 긴밀한 관계를 맺고 있을 때 선언할 수 있다.

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