< 람다 표현식 개요 >
- 람다 표현식은 이름이 없는 익명 함수를 의미
-Java에서 함수형 코드를 사용가능케 함.
- 람다 표현식을 사용하여 명확하게 표현 가능
< 람다 표현식의 특징>
1. 익명 : 메소드와 달리 익명으로 표현하며 코드가 간결해짐
2. 함수 : 람다는 메소드처럼 특정 클래스에 종속되지 않기 때문에 함수라고 부름 다만 일부 예외 리스트를 포함함
3. 전달 : 람다 표현식을 메소드 인수로 전달하거나 변수로 저장하는 것은 불가능
4. 간결성 : 익명 클래스에서와 같은 코드를 계속해서 구현할 필요가 없음.
< 람다 구성 >
파라미터 리스트 : *** 메서드의 파라미터() : (int a1, int a2, int a3...)
화살표 : 화살표 ( -> )는 람다의 바디와 파라미터 리스트를 구분함
람다의 바디 : 람다의 반환 값에 해당하는 표현식이다.
<예제1>
packagepack2;
publicclassThreadClass {
publicvoidsendMail(Stringmsg) {
System.out.println("메일 전송: "+msg);
}
publicThreadClass() {
method1();
method2();
method3();
}
voidmethod1() {
// 전통적 방식
newThread(newRunnable() {
@Override
publicvoidrun() {
sendMail("method1");
}
}).start();
}
// 람다 사용
voidmethod2() {
Threadthread=newThread(() -> sendMail("method2"));
thread.start();
}
voidmethod3() {
newThread(() -> sendMail("method3")).start();
}
publicstaticvoidmain(String[]args) {
newThreadClass();
}
}
< 예제2 >
packagepack;
importjavax.swing.JButton;
importjavax.swing.JFrame;
publicclassButtonLambdaextendsJFrame{
publicButtonLambda() {
super("람다 적용 연습");
setLayout(null);// 레이아웃을 쓰지 않겠다.
//1번째 버튼
JButtonbtn=newJButton("버튼1");
btn.setBounds(10,50,200,50);
add(btn);
setBounds(200,200,300,400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn.addActionListener(arg0-> System.out.println("버튼을 클릭"));
JButtonbtn2=newJButton("버튼2");
btn2.setBounds(10,150,200,50);
add(btn2);
setBounds(200,200,300,400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn2.addActionListener(arg0-> System.out.println("버튼을 클릭"));
}
publicstaticvoidmain(String[]args) {
newButtonLambda();
}
}
'교육' 카테고리의 다른 글
자바 소켓을 활용한 다양한 예제 알아보기 (0) | 2018.07.25 |
---|---|
인공지능 언어 알아보자 (0) | 2018.07.24 |
자바 연산자 조건문 반목 예제 알아보자 (0) | 2018.07.17 |
SQL 테이블 연결 예제 알아보기 (0) | 2018.07.13 |
PL/SQL 기초 연습 해보기 (0) | 2018.07.11 |