중첩 선언과 익명 객체

Korangii·2024년 6월 25일

Java

목록 보기
1/24
post-thumbnail

중첩 클래스

  • 클래스 내부에 선언한 클래스
  • 장점
    • 클래스의 멤버를 쉽게 사용 가능
    • 코드의 복잡성을 줄일 수 있음
  • 멤버 클래스 : 클래스의 멤버로서 선언되는 중첩 클래스
    • 인스턴스 멤버 클래스 : A 객체를 생성해야만 B 객체를 생성할 수 있음
      • 바깥 클래스의 모든 필드와 메소드
    • 정적(static) 멤버 클래스 : A 객체를 생성하지 않아도 B 객체를 생성할 수 있음
      • 바깥 클래스의 정적 필드와 정적 메소드
  • 로컬 클래스 : 메소드 내부에서 선언되는 중첩 클래스, 메소드가 실행할 때만 B 객체를 생성할 수 있음
// 인스턴스 멤버 클래스
class A {
	class B { ...}
    }
    
// 정적 멤버 클래스
class A {
	static class B { ... }
    }
    
// 로컬 클래스
class A {
	void method() {
    class B { ... }
    }
}

중첩 인터페이스

  • 해당 클래스와 긴밀한 관계를 맺는 구현 객체를 만들기 위해 클래스의 멤버로 선언된 인터페이스
  • 안드로이드와 같은 UI 프로그램에서 이벤트를 처리할 목적으로 많이 활용
class A {
	// 중첩 인터페이스
  [public | private] [static] interface B {
    // 상수 필드
    // 추상 메소드
    // 디폴트 메소드
    // 정적 메소드
}

익명 객체

  • 이름이 없는 객체
  • 필드값, 로컬 변수값, 매개변수값으로 주로 사용

익명 자식 객체

  • 부모 클래스를 상속받아 생성되는 객체
  • 부모 타입의 필드, 로컬 변수, 매개변수의 값으로 대입할 수 있음
new 부모생성자(매개값, ...) {
	// 필드
    // 메소드

}

익명 구현 객체

  • 인터페이스를 구현해서 생성되는 객체
  • 인터페이스 타입의 필드, 로컬변수, 매개변수의 값으로 대입할 수 있음
  • 안드로이드와 같은 UI프로그램에서 이벤트를 처리하는 객체로 많이 사용
new 인터페이스() {
	// 필드
    //메소드

}
profile
https://honeypeach.tistory.com/ 로 이전했습니다.

0개의 댓글