국비

[ 19일차 81~90 ] 수업 정리 - 자바

코딩하는냥이 2025. 5. 12. 15:25
반응형

 

✅ 1. 중첩 클래스 종류 및 특징

유형 설명 선언 위치 접근
인스턴스 멤버 클래스 외부 클래스의 인스턴스 멤버로 선언 클래스 내부 외부 클래스 인스턴스 필요
정적 멤버 클래스 (static) 정적 멤버로 선언됨 클래스 내부 외부 클래스 인스턴스 없이 접근
로컬 클래스 생성자나 메서드 내부에 정의 메서드/생성자 내부 해당 블록 내에서만 사용 가능
익명 클래스 클래스 선언 없이 즉석에서 구현 인스턴스 생성과 동시에 구현 일회용 용도로 사용

✅ 2. 내부 클래스 주요 예시

🧩 인스턴스 멤버 클래스

A.B b = a.new B();

🧩 정적 멤버 클래스

A.B b = new A.B();  // 외부 클래스 인스턴스 없이 사용 가능

🧩 로컬 클래스

void method() {
    class B { ... }
    B b = new B();
}

🧩 this vs A.this

this.field         // 내부 클래스의 필드
A.this.field       // 외부 클래스의 필드

✅ 3. 중첩 인터페이스와 이벤트 리스너 구현

  • 내부에서 인터페이스 정의 후 콜백 형태로 사용
  • 실제 예시: Button.ClickListener 구현
btn.setClickListener(new ClickListener() {
    public void onClick() { ... }
});

✅ 4. 익명 구현 객체 실습 (Home, RemoteControl)

  • 인터페이스를 구현하면서 객체 이름 없이 직접 생성
RemoteControl rc = new RemoteControl() {
    public void turnOn() { ... }
    public void turnOff() { ... }
};

🧩 사용 위치별 예시

위치 동작 예시
필드 TV 제어
메서드 내부 에어컨 제어
메서드 매개변수 난방 제어

🧠 19일차 핵심 요약

개념 설명
중첩 클래스 클래스 내부에 선언된 클래스 (멤버, 정적, 로컬, 익명)
접근 규칙 정적 클래스는 static 멤버만 접근 가능
익명 구현 객체 인터페이스나 추상 클래스의 일회성 구현
this / A.this 내부/외부 클래스 멤버 구분
UI 이벤트 처리 중첩 인터페이스를 활용한 리스너 등록 방식