LANGUAGE/JAVA

[JAVA] ANONYMOUS - 익명

진심스테이크 2019. 7. 16. 16:29

 

Anonymous (익명) : 이름이 없는 것

 

Anonymous class (익명 클래스) : 이름이 없는 클래스

- 함수를 바로 구현해서 사용

 

Anonymous Fuction (익명 함수) : 이름이 없는 함수

- 함수 인수로 코드를 전달할 때 사용

 

Anonymous Object (익명 객체) : 이름이 없는 객체

- 객체를 생성하지 않고 사용

- 객체가 없어서 메모리가 만들어져도 바로 사라짐

- 보통 한번 쓰고 말 때 사용

 

- interface 구현

interface Apple13 {
    void func01();
}

 

- 익명 클래스

Apple13 a13 = new Apple13() {
    public void func01() {
    System.out.println("Apple13");
    }
};

a13.func01(); // 함수 호출

 

- 익명 객체

new Apple13() {
    public void func01() {
    System.out.println("Apple13-1");
    }
}.func01(); // 함수 호출

 

- 익명 함수

class Banana13 {
    void func02(Apple13 apple13) {
        System.out.println("1");
        apple13.func01(); // 익명 함수 호출
    }
}

public class Ex13 {
    public static void main(String[] args) {

    Banana13 b13 = new Banana13();

    b13.func02(new Apple13() {
        public void func01() {
        System.out.println("2");
        }
    });
        
    System.out.println("------------");
        
    b13.func02(new Apple13() {
        public void func01() {
        System.out.println("3");
        }
    });
}