람다가 필요한 이유

WAS·2025년 4월 15일
0

람다

목록 보기
1/1

✅ 값 매개변수화

  • 문자값, 숫자값 처럼 구체적인 값을 메서드 안에 두는 것이 아니라, 매개변수(파라미터) 를 통해 외부에서 전달 받도록 해서, 메서드의 동작을 달리하고, 재사용성을 높이는 방법

= 값(숫자, 문자열) 을 바꿔가며 메서드의 동작을 달리 함

✅ 동작 매개변수화

  • 코드조각(코드의 동작 방법, 로직) 을 메서드에 두는 것이 아니라, 매개변수를 통해서 외부에서 전달 받도록 해서, 메서드의 동작을 달리하고, 재사용성을 높이는 방법

= 어떤 로직을 수행할지를 메서드에 전달( 인스턴스 참조 , 람다 )

하지만 인스턴스 참조 의 경우 동작 매개변수화 를 하려면 해당 클래스를 정의하고 인스턴스를 만들어야하는 복잡함이 있다

그래서 자바 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 메서드

함수

  • 객체와 직접적인 연관이 없으며, 독립적으로 존재한다
  • 호출 시에 객체 인스턴스가 필요 없다

메서드

  • 객체의 상태와 밀접한 관련이 있다
  • 클래스에 속해있는 함수를 의미한다
  • 클래스 내부에 정의된 함수는 메서드

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글