✅ 값 매개변수화
= 값(숫자, 문자열) 을 바꿔가며 메서드의 동작을 달리 함
✅ 동작 매개변수화
= 어떤 로직을 수행할지를 메서드에 전달( 인스턴스 참조
, 람다
)
하지만 인스턴스 참조
의 경우 동작 매개변수화
를 하려면 해당 클래스를 정의하고 인스턴스를 만들어야하는 복잡함이 있다
그래서 자바 8에 등장한 람다
를 사용하면 코드 조각
을 편하게 전달 할 수 있다
람다를 사용하면 [클래스, 인스턴스, @Override, 메소드 명] 등 이런 것을 적지 않고
안에 있는 필요한 로직(코드 조각
) 을 인수로 전달해서 사용이 가능하다
다음은 밑에 있는 익명클래스를 람다로 바꾸는 과정이다
Procedure dice = new Procedure() {
@Override
public void run() {
int randomValue = new Random().nextInt(6) + 1;
System.out.println("주사위 = " + randomValue);
}
};
hello(() -> {
int randomValue = new Random().nextInt(6) + 1;
System.out.println("주사위 = " + randomValue);
});
✅ 함수 vs 메서드
함수
메서드