Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 슬림3
- IdeaPad 3 15ABA7
- SQL
- 코딩초보자
- 오라클
- 데이터베이스
- 코딩입문
- 라이젠노트북
- 코린이
- 코딩일기
- 레노버 아이디어패드 슬림3
- 레노버 슬림3
- 데이터베이스 기초
- 오라클 DELETE
- 가성비 노트북
- 탑마이장인
- 자바초보
- 데이터베이스 집합연산자
- 데이터베이스 DELETE
- 오라클UPDATE
- 데이터베이스 예제
- 레노버 노트북
- lenovo ideapad 3
- 데이터베이스 UPDATE
- 데이터베이스 JOIN
- 사무용 노트북
- 자바입문
- 데이터베이스기초
- 티모장인
- 개발자준비
Archives
- Today
- Total
스퐁지송 개발노트
22.12.02(불금) 람다식 (익명함수) 본문
728x90
람다식 - 익명 함수
인터페이스 - 추상메서드(단 2개는 안됨)
람다식 예시
람다 인터페이스
package 람다;
@FunctionalInterface
//람다를 위한 인터페이스입니다 라는 뜻! 안써두됨
public interface Lambda1 {
int add(int a, int b);
//매계변수
}
메인클래스
package 람다;
public class Main01 {
public static void main(String[] args) {
Lambda1 l = (int a, int b) -> a + b;
System.out.println(l.add(10/* a */, 30/* b */));
}
}
예시2
람다 인터페이스
package 람다;
public interface Lambda2 {
void print();
}
메인 클래스
package 람다;
public class Main02 {
public static void main(String[] args) {
Lambda2 l = () -> {
//람다2클래스에 매계변수가 없으므로 빈칸
String str = "메서드 실행";
System.out.println(str);
};
l.print();
}
}
람다예시03
람다인터페이스
package 람다;
public interface Lambda3 {
void print(String name);
}
메인문
package 람다;
public class Main04 {
public static void main(String[] args) {
Lambda3 l = (String name) -> {
//Lambda3 인터페이스문에서 받은 매개변수
System.out.println("이름: " + name);
};
l.print("티모");
}
}
예시
람다 인터페이스
package 람다;
public interface Lambda5 {
void m();
}
메인클래스
package 람다;
public class Main05 {
public static void main(String[] args) {
Lambda4 l = (x,y) -> x * y;
//한줄만 작성시 return;생략해서 축약작성
//그래서 람다인터페이스로 입력값이 자동으로 감
System.out.println("곱 : "+l.cal(5,3));
l = (x,y) -> x+y;
System.out.println("합 : "+l.cal(5,3));
//한줄만 작성시 return;생략해서 축약작성
//그래서 람다인터페이스로 입력값이 자동으로 감
l = (x,y) -> x-y;
System.out.println("빼기 : "+l.cal(5,3));
//한줄만 작성시 return;생략해서 축약작성
//그래서 람다인터페이스로 입력값이 자동으로 감
l = (x,y) -> x/y;
System.out.println("나누기 : "+l.cal(5,3));
//한줄만 작성시 return;생략해서 축약작성
//그래서 람다인터페이스로 입력값이 자동으로 감
};
}
결과
곱 : 15
합 : 8
빼기 : 2
나누기 : 1
예시
람다 4,5인터페이스
package 람다;
public interface Lambda4 {
int cal(int x, int y);
}
==================================
package 람다;
public interface Lambda5 {
void m();
}
샘플클래스
package 람다;
public class Sample {
int a = 10;
void m() {
final int a = 40;
Lambda5 l = () -> {
//Lambda5에 매개변수없으니 빈칸
System.out.println("this : "+ this.a);
//this : 자기 클래스의 a를 부르기때문에 "a" 출력
System.out.println("a : "+ a);
//현제 조건식의 "a"를 불러오기때문에 "40"출력
};
l.m();
}
}
메인클래스
package 람다;
public class Main06 {
public static void main(String[] args) {
Sample s = new Sample();
s.m();
}
}
결과
this : 10
a : 40
Runnable,Thread
package 람다;
//자바안의 기본 인터페이스 람다 Runnable
//위에서 아래로 순서로 진행이 아니라 동시에 다중으로 실행
//그래서 위에 첫번쨰 메서드 진행중에 두번째 메서드도 동시에 실행
public class Main03 {
public static void main(String[] args) {
System.out.println("시작");
//시작과 동시에
//t.start();
//t2.start(); 아래 코드 실행
Runnable run = () -> {
for(int i=1;i<=10;i++){
System.out.println("첫번째: "+i);
}
};
Runnable run2 = () -> {
for(int i=1;i<=10;i++){
System.out.println("두번째: "+i);
}
};
Thread t = new Thread(run);
Thread t2 = new Thread(run2);
t.start();
t2.start();
System.out.println("종료");
}
}
결과
시작
종료
첫번째: 1
첫번째: 2
첫번째: 3
첫번째: 4
첫번째: 5
첫번째: 6
첫번째: 7
첫번째: 8
두번째: 1
두번째: 2
두번째: 3
첫번째: 9
두번째: 4
첫번째: 10
두번째: 5
두번째: 6
두번째: 7
두번째: 8
두번째: 9
두번째: 10
728x90
'JAVA 입문 시작' 카테고리의 다른 글
22.12.02(불금) 자바안의 기본 람다 인터페이스 구현으로 예시문작성 (0) | 2022.12.02 |
---|---|
22.12.02(불금) 자바안의 기본 람다 인터페이스 구현 (0) | 2022.12.02 |
22.12.02(불금) 제네릭 / <? super Object> <? extend Object> (4) | 2022.12.02 |
22.12.02 (불금) 제네릭 (0) | 2022.12.02 |
22.12.01(목) 커피관리자 만들기(Map사용해서) (0) | 2022.12.01 |
Comments