728x90

 

☕ 이름 없는 클래스

- new 생성자(){ .... }

- 생성자 뒤에 중괄호가 나오고 코드를 오버라이딩 하여 구현한다. 

Car car = new Car(){
	public void run(){
    	System.out.println("Car를 상속받는 이름없는 객체가 run 메소드를 오버라이딩함");
    }
}
package com.example;

public class MyRunnableMain {
    public static void main(String[] args) {
        MyRunnable r = new MyRunnable() {
            @Override
            public void run() {
                System.out.println("myrunnable run!!!");
            }
        };
        r.run();
    }
}

 

☕ 람다(Lambda) 인터스페이스 - 메소드는 하나만 가지고 있는 인터스페이스

- 람다 interface는 메소드를 한개 가지고 있다

- 람다 인터스페이스를 사용하는 람다 표현식은 JDK 8에서 추가 되었다

- JDK 8에 추가 된 이러한 문법들을 사용할 때 보통 모던 자바라고 한다

 

package com.example;

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

        RunnableExecute runnableExecute = new RunnableExecute();
        System.out.println("--------------");
        runnableExecute.exeute(() ->        {
                    System.out.println("hello!@!");
                }
    );
            System.out.println("---------");
    }
}

/*
결과값: hello!@!
*/
728x90