[Java] 내부 클래스( Inner class )

김호준·2021년 11월 3일
0

내부 클래스

  • 내부 클래스란 클래스 내에 선언된 클래스로 두 클래스가 서로 긴밀한 관계일 때 선언한다.

  • 내부 클래스의 장점

    • 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
    • 코드의 복잡성을 줄일 수 있다. ( 캡슐화 )

내부 클래스의 종류와 특징

  • 인스턴스 클래스 (instance class)

    • 외부클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스 멤버처럼 다루어진다.
    • 주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용될 목적으로 선언된다.
  • 스태틱 클래스 (static class)

    • 외부 클래스의 멤버변수 선언위치에 선언하며 외부 클래스의 static 멤버처럼 다루어진다.
    • 주로 외부 클래스의 static멤버, 특히 static 메서드에 사용될 목적으로 선언된다.
  • 지역 클래스 (local class)

    • 외부 클래스의 메서드나 초기화 블럭 안에 선언하며, 선언된 영역 내부에서만 사용될 수 있다.
  • 익명 클래스 (anonymous class)

    • 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스 (일회성)
class Outer 
{   
    class InstanceInner {}		// 인스턴스 클래스
    static class StaticInner {}		// 스태틱 클래스
    
    void myMethod()
    {
    	class LocalInner {}		// 지역 클래스
    }
}    
profile
Go-getter Developer

0개의 댓글