본문 바로가기

교육

자바 람다 표현식 요약 정리

반응형



< 람다 표현식 개요 >

- 람다 표현식은 이름이 없는 익명 함수를 의미

-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();

       }

}