Java 04

2017. 1. 28. 04:39Work/Java

728x90
반응형

내부 클래스

Inner class, 내부 클래스, 이너 클래스 또는 중첩 클래스 라고 불림


내부 클래스의 메소드나 속성에 static 키워드 선언을 할 수 없다.

단, final 키워드와 붙여서 선언할 수는 있다.

내부 클래스를 사용하기 위해서는 외부 클래스를 인스턴스화 해야 한다.

내부 클래스의 클래스 이름은 외부 클래스 안에서만 중복되지 않으면 된다.


class OuterClass{ // 외부 클래스

class InnerClass{ // 내부 클래스

}

}


- 인스턴스 내부 클래스

인스턴스 내부 클래스를 줄여서 내부 클래스라고 부르기도 한다.

(일반적인 형태)


OuterClass oc = new OuterClass();

InnerClass ic = oc.new InnerClass();

OuterClass.InnerClass innerObjerct = oc.new InnerClass();


- 정적 내부 클래스

외부 클래스의 객체가 없이도 바로 인스턴스화 할 수 있다.


class OuterClass{
    static class InnerClass{
    }

}

InnerClass io = new OuterClass.InnerClass();


- 지역 내부 클래스

메소드 내부에 클래스를 선언해서 사용, 따로 인스턴스를 생성하지 않고 OuterClass인 외부 클래스를 인스턴스하여 메소드를 사용한다.


class OuterClass{
    void OuterClassMethod(){

class LocalInnerClass{

}

}

}


- 일회용으로 사용되는 익명 클래스

인터페이스를 구현한 클래스가 잠시 필요한 경우

기존에 구현된 클래스의 일부만 오버라이딩해서 변경하는 경우


class OuterClass{
    Object getName()

--------------------------------------------------------------

익명 클래스 영역

{

return new Object(){

}

--------------------------------------------------------------

}

}

728x90
반응형

'Work > Java' 카테고리의 다른 글

Java 06  (0) 2017.02.01
Java 05  (0) 2017.01.30
Java 03  (0) 2017.01.26
Java 02  (0) 2017.01.25
Java 01.  (0) 2017.01.25