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