본문 바로가기

국비지원_핀테크

14일차_ [java] 람다 ( Lambda )

 

 

 

 

 

람다 ( Lambda )

람다 ( Lambda )

 

package lambda;

interface Test02{
	public void test02();
}

public class Ex02 {
	public static void main(String[] args) {
		
		// 인터페이스 자체를 객체화 할 수 있다
		// 인터페이스를 객체화 할 땐 메소드를 정의해줘야 한다
		Test02 t = new Test02() {
			@Override
			public void test02() {
				System.out.println("test 실행");
			}
		};
		t.test02(); // test 실행 출력
		
		System.out.println("--- 람다 ---");
		
		// 람다식 사용
		// () 의 의미는 Test02 의 메소드임을 의미
		// -> 를 사용하여 () 메소드의 내용을 우측에 정의
		// ★ 람다식을 사용할땐 무조건 메소드가 하나만 존재해야 한다 ★
		Test02 t02 = () -> System.out.println("test실행222");
		t02.test02(); // test실행222 출력
	}
}

람다식 사용법

 

package lambda;

interface Test03{
	public void test(int num, String msg);
}

public class Ex03 {
	public static void main(String[] args) {
		Test03 t = new Test03() {
			@Override
			public void test(int num, String msg) {
				System.out.println("num : " + num);
				System.out.println("msg : " + msg);
			}
		};
		t.test(100, "안녕하세요");
		// num : 100
		// msg : 안녕하세요
		
		System.out.println("--- 람다 ---");
		
		// 람다식 사용
		// 전달 받고자 하는 매개변수의 이름을 임의로 넣으면 됨
		Test03 t02 = (n, s) -> {
			System.out.println("n : " + n);
			System.out.println("s : " + s);
		};
		t02.test(500, "연습");
		// n : 500
		// s : 연습
	}
}

매개변수가 존재하는 인터페이스를 객체화할 때 람다식 사용법

 

package lambda;

interface Test04{
	public void test();
}

class TestClass04{
	// 인터페이스 객체를 변수로 받아 사용하는 메소드를 생성
	public void TestClass(Test04 t) {
		System.out.println("기능을 실행합니다!!!!!");
		t.test();
	}
}

public class Ex04 {
	public static void main(String[] args) {
		TestClass04 t01 = new TestClass04();
		
		// 람다식을 사용하여 인터페이스 객체화
		Test04 t04 = () -> System.out.println("test 실행됩니다");
		// 매개변수로 인터페이스 객체를 필요로 하는 메소드를 실행
		t01.TestClass(t04);
		// 기능을 실행합니다!!!!!
		// test 실행됩니다
		
		
		// 객체를 외부에 생성하지 않고 한 코드 안에서만 사용한 뒤
		// 버리는 경우 람다식을 사용해 간단하게 사용할 수 있다
		t01.TestClass(() -> {System.out.println("t1111111 실행");});
		// 기능을 실행합니다!!!!!
		// t1111111 실행
		// 위 문구 2줄 출력 후 생성되었던 인터페이스 객체는
		// 다음 코드로 넘어가면서 소멸된다
	}
}

람다식 사용 예시

( 인터페이스 객체를 매개변수로 요구하는 객체에 사용하는 경우 )

728x90