[Java] 2020.12.11. day_35 Thread로 다중채팅 만들기, 람다식
2020. 12. 11. 16:44ㆍWeb_Back-end/Java SE
◎ Lambda : 람다식
- | Lambda : 람다식 |
- | 인터페이스를 편하게 사용할 수 있는 문법 |
↪ 인터페이스를 사용하려면 인터페이스 → 구현한 클래스를 작성 인터페이스 → 추상메소드를 Override 위의 필요성이 사라진다 |
|
JavaSE 8 (JDK 1.8)에서부터 추가된 문법 | |
구현클래스 없이, abstract method를 Override하지 않아도 interface사용가능 ( Override하긴 한다 → 방식이 조금 바뀜 ) |
|
인터페이스의 abstract method가 하나인 경우에면 람다식 사용가능 == SAM : Single Abstract Method ⇉ @FunctionalInterface |
|
interface를 정의할 때 interface위에 @FunctionalInterface 을 사용하면 그 interface는 SAM으로만 작성될 수 있다 |
|
문법 | |
인터페이스명 객체명 = (매개변수,,)->{ 코드작성 }; | |
(매개변수,,) | abstract method의 parameter정의 부 |
{ 코드작성 } | abstract method의 구현부 |
(매개변수,,)->{ 코드작성} | abstract method를 Override하는 코드 |
○ 람다식 간단하게 사용해보기
//1.
public interface Test{
public void test();
}
//2.
public interface Test{
public String myName();
}
//3.
public interface Test{
public void myName(String name);
}
▲ 위의 abstract method들을 아래 ▼ 처럼 사용 가능하다
//1.
Test t = ()->{System.out.println("Override");};
//2.
Test t = ()->{return "memo";};
//3.
Test t = (String n)->{System.out.println(n);};
▼ method 호출하는 방법
//1.
t.test();
//console : Override
//2.
System.out.println(t.myName());
//console : memo
//3.
t.myName("김코비");
//console : 김코비
※ FunctionalInterface 를 주석처리하고 abstract method를 하나 더 만들어보기
'Web_Back-end > Java SE' 카테고리의 다른 글
[Java] 2020.12.10. day_34 Thread의 상태변환 (0) | 2020.12.10 |
---|---|
[Java] 2020.12.07. day_32 채팅프로그램(오류발생) (0) | 2020.12.07 |
[Java] 2020.12.04. day_31 실행가능한 jar 파일 만들기 (bat, jar) (0) | 2020.12.04 |
[Java] 2020.12.04. day_31 방화벽 여는 방법 (0) | 2020.12.04 |
[Java] 2020.12.03. day_30 Network (0) | 2020.12.03 |