람다식
자바에서 함수형언어를 지원해주는 문법
*람다식은 주로 인터페이스와 연결되어서 사용
다양한 형식의 람다식
(1) 기본 람다식
(2) 파라미터와 리턴타입이 없는 경우
(3) 리턴타입이 있는 경우
예시)
package j210129.sub;
//람다식은 주로 인터페이스와 연결되어서 사용
interface Xyz{
int x=8;//자동으로 상수로 인식된다(public static final int x=8;)
public void a(int x, int y);
//public void b();
}
public class LamTest2 implements Xyz {
@Override
public void a(int x,int y) {
// TODO Auto-generated method stub
System.out.println("부모로부터 받아서 오버라이딩");
}
public void b() {};//오버라이딩 하지 않아도 되면 형태라도 적어두기
public static void main(String[] args) {
// TODO Auto-generated method stub
//방법2. 익명클래스{추상메소드를 오버라이딩하여 호출}
Xyz abc = new Xyz() {
public void a(int x,int y) {
System.out.println("익명클래스를 이용한 메소드호출방법"+x*y);
}
public void b() {
System.out.println("오버라이딩 순서는 중요x");
}
};
abc.a(6,5);
//방법3. 인터페이스 객체를 얻어와서 메소드를 호출-> 람다함수를 이용
//형식) 인터페이스자료형 객체명=(매개변수명,,,)->{처리할 문장}
//문장이 한줄일때는 {}생략가능, 메소드명은 생략
Xyz abc2 = (int a,int b)->System.out.println("람다를 이용=>"+(a+b));
//인터페이스에서 람다표현식을 사용하고 싶다면 추상메소드가 하나만 존재해야한다.
abc2.a(6, 5);
/*
* 인터페이스 객체를 얻어올때 메소드의 반환형,메소드명 생략 가능
* 추상메소드를 오버라이딩->일반메소드를 만들때 메소드명을 생략가능하다
* */
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 인터페이스형 객체 생성 (0) | 2021.06.30 |
---|---|
[JAVA] 자바 try~catch exception 상세 설명 (0) | 2021.06.28 |
[JAVA]return, break, continue 차이 (0) | 2021.06.28 |
[JAVA] 시큐어 코딩 - properties 파일 이용 (0) | 2021.06.27 |
[JAVA]JDBC, Connection, PrepareStatement, ResultSet (0) | 2021.06.26 |