Java

[Java 기초 공부] 중첩 클래스(내부 클래스:Inner class) 와 익명 클래스

동그리담 2024. 1. 4. 16:09

내부 클래스란?

클래스 내에 선언된 클래스이다. 클래스에 다른 클래스를 선언하는 이유는 두 클래스가 긴밀한 관계에 있기 때문이다.
  한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점을 얻을수있다.

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

이때, 내부 클래스인 B는 다른 클래스에서 잘 사용되지 않아야 한다. / 컴파일시에 A$B.class

익명 클래스란?

클래스 선언과 객체의 생성을 동시에 하고 이름이 없는 일회용 클래스

new 조상클래스이름(){
}
new 구현인터페이스이름(){
}

ex

class 클래스명{
	Object iv = new Objcet(){ void method() }; // 익명클래스
    static Objvet cv = new Objcet() { void method() }; //익명클래스
    
    void myMethod(){
    	Objcet lv = new Objcet(){ void method() }; //익명클래스
    }
} // 컴파일 시에 4개의 클래스 파일이 생성

클래서명.class
클래스명$숫자.class <- 익명클래스 순차 번호부여 ex) ClassName$1.class