[250921] _ 익명 클래스

호두·2025년 9월 22일

✔️ Java / Spring

목록 보기
21/25

익명 클래스

익명 클래스(Anonymous Class) 는 지역 클래스의 특별한 종류의 하나다. 클래스의 이름이 없다는 특징이 있다.

✅ 선언과 생성을 동시에 처리한다
✅ 부모 클래스를 상속 받거나, 또는 인터페이스를 구현해야한다

익명 클래스의 역할

익명 클래스는 이름이 없는 클래스로, 주로 단 한 번만 사용되는 클래스나 인터페이스를 구현할 때 사용된다.


package nested.anonymous;

import nested.local.Printer;

public class AnonymousOuter {

    private int outInstanceVar = 3;

    public void process(int paramVar) {

        int localVar = 1;

        Printer printer1 = new Printer() { // ➡️ 익명클래스 !!

            int value = 0;

            @Override
            public void print() {
                System.out.println("value = " + value);
                System.out.println("localVar = " + localVar);
                System.out.println("paramVar = " + paramVar);
                System.out.println("outInstanceVar = " + outInstanceVar);
            }
        }; // 익명 클래스의 블록 뒤에는 ; 를 붙여야 한다.

        printer1.print();
    }

    public static void main(String[] args) {
        AnonymousOuter localOuter = new AnonymousOuter();
        localOuter.process(2);
    }
}

Printer printer1 = new Printer() { ... }; ➡️ 익명 클래스

‼️ 자바에서 하나의 문장은 누가(대상) , 무엇을 한다(행동) 는 구조를 가진다고 볼 수 있다. 위의 익명 클래스는 객체인 toynew MyToy() {...} 의 행동을 한다. 즉 완전한 하나의 문장인 것이다.

블록 뒤에 세미콜론(;) 이 왜 붙는걸까 ?
자바에서 세미콜론(;) 은 "하나의 문장이 끝났다" 는 표시다. 일반 블록에서는 단순히 여러 문장을 묶는 역할이기 때문에 세미콜론이 필요 없지만, 익명 클래스의 블록은 단순한 묶음이 아니라 객체를 생성하는 new 표현식의 일부다. 그 전체가 하나의 문장이라는 뜻이다.


0개의 댓글