728x90
반응형
// 인터페이스 구현을 syso로 구현, 우리가 필요한 값은 msg값 밖에 없으므로 msg ->를 해줘서 간편화시킴
myInterface mi = msg-> System.out.println(msg);
mi.println("람다식");
// static test의 msg값을 test로 주고 인터페이스를 mi로 줘서 인터페이스를 구현
test("test", mi);
// msg값을 람다식으로 넣고 인터페이스가 그 msg를 사용함으로써 msg가 출력이 됨
test("람다식 tes", msg -> System.err.println(msg));
// 파라미터가 여러개가 있으면 (msg, msg2)를 써서 표현하고
// 문장이 여러문장이 있으면 {syso(); syso()}로 표현한다.
test("람다식 문장 여러개", msg -> {
System.err.println("1문장");
System.err.println("2문장");
System.err.println("3문장");
//return msg; 값 사용하면 됨, 만약 return값이 있을 시!!
});
Thread t = new threadtest();
Thread t2 = new Thread(new threadtest2());
// t.start();
// t2.start();
// 람다식으로 runnable 쓰레드 구현하기
threadTest(()->{
while(true) {
System.out.println(new Date());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
int[] arr = {1,2,3};
int a = 0;
arr을 받아서 인터페이스의 interfaceArr에 넣은다음에 아래 메서드를 구현
sumInt(arr, interfaceArr -> {
int a = 0;
for(int i = 0; i<arr.length; i++) {
a+=arr[i];
}
System.out.println(a);
});
int[] arr2 = {3, 2};
summax(arr2, maxarr -> {
int a = 0;
for(int i = 1; i<arr2.length; i++) {
a = maxarr[i-1]>maxarr[i] ? maxarr[i-1] : maxarr[i];
}
System.out.println(a);
});
}
// 람다식 연습
static void test(String msg, myInterface mi) {
mi.println(msg);
}
// 람다식 연습 2 = arr에 저장된 정수의 합을 출력
static void sumInt(int[] arr, suminterface in) {
in.sum(arr);
}
// 람다식 연습 2 = arr에 저장된 정수의 최대값을 출력
static void summax(int[] arr2, maxinterface in2) {
in2.max(arr2);
}
// 람다식으로 runnable 쓰레드 구현하기
static void threadTest(Runnable r) {
new Thread(r).start();
}
}
728x90
반응형
'국비과정 > Java' 카테고리의 다른 글
자바에서 parameter를 여러개 받을 때 (0) | 2022.03.21 |
---|---|
자바 예외처리 catch - try (0) | 2022.02.22 |
자바 인터페이스 interface (0) | 2022.02.19 |
자바 추상클래스 abstract (0) | 2022.02.18 |
프로젝트를 설계할 때 생각해야할 순서 (0) | 2022.02.17 |