Criming
코딩으로 업삼기
Criming
전체 방문자
오늘
어제
  • 분류 전체보기 (29)
    • Programming (28)
      • Spring (5)
      • Database (2)
      • JSP (6)
      • Java (10)
      • 탐구 및 해결 (1)
      • 연습문제 (3)
      • 예제 (1)
    • 자격증 (0)
    • 기타 (1)
      • 블로그 운영 (0)
      • 문서 (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • jsp
  • sendRedirect
  • 아스키코드
  • Tomcat
  • param
  • println()
  • spring
  • 인스턴스
  • 자바규칙
  • printf()
  • 표현언어
  • Eclipse
  • Escape문자
  • aws
  • ASCII
  • jvm
  • forward
  • System.out
  • print()
  • jre
  • Java SE
  • JDK
  • java
  • HttpuURLConnection
  • redirect
  • Java EE
  • try-catch
  • main()
  • ec2
  • json

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Criming

코딩으로 업삼기

Programming/Java

[JAVA] 람다 표현식(Lambda Expressions)

2022. 8. 19. 15:10

람다 표현식이란?

 

간단히 말하면 메소드를 하나의 식으로 표현한 것이다.  ● 람다표현식 기본 구조 : (매개변수목록) -> {함수몸체}

메서드를  람다식으로 표현하면 객체를 생성하지 않아도 메소드를 사용할 수 있다.  

[기본 메서드 ] 
int sum(int x, int y){ return x+y };

[람다 표현식]
(x,y) -> x+y
 [ 기본메서드 → 람다 표현식으로 바꾸기 ]
int sum(int x, int y) { return x+y };   1) 메서드 이름과 반환타입
(int x, int y) { return x+y };          2) 매개변수와 몸통{} 사이에 '->'추가
(int x, int y) -> { return x+y };       3) 반환값은 return문 대신 식으로 대신 표현(식의 연산결과가 자동적으로 반환됨)
(int x, int y) ->  x+y                     ※ 문장(statement)이 아니고 식(expression)이므로 끝에 세미콜론; 이 붙지 않는다.
(x, y) -> x+y                              ※ return문을 계속 쓸 경우 몸통{ } 을 생략할 수 없다.
                                           ※ 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생락할 수 있다.
                                           ※ 매개변수가 하나인 경우에는 괄호()를 생략할 수 있다.

 

일반적으로 자바에서는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성할 수 있는 클래스를 익명 클래스라고 한다.

따라서 람다식은 메서드 이름과 반환값이 없어지므로 익명 함수(anonymous function)과 같다고 할 수 있다.

[ 람다 표현식 ]
(int x, int y) -> x+y

[ 익명 클래스 ] 
new Object(){
	int sum(int x, int y){
    	return x+y;
        }
}

 

'Programming > Java' 카테고리의 다른 글

[JAVA] 자바 개발환경 세팅하기(Java, Eclipse)  (0) 2022.09.22
[JAVA] 자바를 시작하며..(JVM, JDK, JRE)  (0) 2022.09.19
[JAVAFX] Eclipse에서 JavaFX lib 설치.시작하기  (0) 2022.08.11
[JAVA] Static 이란?  (0) 2022.08.02
[JAVA] return문  (0) 2022.08.02
    'Programming/Java' 카테고리의 다른 글
    • [JAVA] 자바 개발환경 세팅하기(Java, Eclipse)
    • [JAVA] 자바를 시작하며..(JVM, JDK, JRE)
    • [JAVAFX] Eclipse에서 JavaFX lib 설치.시작하기
    • [JAVA] Static 이란?
    Criming
    Criming

    티스토리툴바