JAVA - 람다 2 (2022-08-19)
2022. 8. 19. 14:06ㆍ3층 1구역 - 개발의 장/JAVA
1. 서론
람다에 대해 조금 더 파고들어 보자.
2. 본론
람다식을 요 며칠간 계속 쓰던 인터페이스를 상속받아 오버라이딩 그러니까 재정의 하는 예제이다.
package lambdas;
interface LambdaInterEx2 {
public void lam();
}
public class LambdaEx2 {
public static void main(String[] args) {
LambdaInterEx2 lam = new LambdaInterEx2() {
@Override
public void lam() {
System.out.println("이벤트에 맞게 코드가 구성됨.");
} //오버라이드는 중괄호에 있는 것만 변경가능 허다.
};
lam.lam(); //<< 오버라이드는 메서드가 구현이 된 것이고,
//lam변수를 통해 메서드를 호출해야함.
}
}
package events;
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class EventEx1 extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
//lambdaEx2번의 예제
public void start(Stage primaryStage) throws Exception {
Label label = new Label("클릭");
label.setFont(new Font(24));
label.setLayoutX(120);
label.setLayoutY(80);
label.setOnMouseEntered(new EventHandler<Event>() {
@Override
public void handle(Event event) {
label.setScaleX(2);
label.setScaleY(2);
}
});
AnchorPane anchor = new AnchorPane();
anchor.getChildren().add(label);
primaryStage.setTitle("Event Test");
primaryStage.setScene(new Scene(anchor, 300, 200));
primaryStage.show();
}
}
위 코드에서 쓴 이것
label.setOnMouseEntered(new EventHandler<Event>() {
@Override
public void handle(Event event) {
label.setScaleX(2);
label.setScaleY(2);
}
});
이것을 어떻게 간단하게 쓸 순 없나?
람다를 통해 줄여보도록 하자.
event -> {label.setScaleX(2);
label.setScaleY(2);}
람다식은 보통 쓰던 코드에서 쓰면 중복이 되어 지저분해지지만
이벤트에서 사용하게되면 코드가 매우 간결해지기 때문에 이벤트에 최적화 되어 있다.
'3층 1구역 - 개발의 장 > JAVA' 카테고리의 다른 글
JAVA - 람다3, JAVAFX - 상호작용<Event> 마우스 왔다 (2022-08-19) (0) | 2022.08.20 |
---|---|
JAVA - 람다식 (2022-08-19) (0) | 2022.08.19 |
JAVA - 객체지향언어 배열 HashMap을 이용한 회원정보 관리 프로그램 구현하는 퀴즈 (2022-08-03) (0) | 2022.08.03 |
JAVA - 객체지향언어 HashMap을 이용하여 회원 정보 프로그램 만드는 퀴즈 (2022-08-02) (0) | 2022.08.02 |
JAVA - 객체지향언어 인터페이스를 이용한 회원정보 입력 프로그램 만드는 퀴즈 - 02 (2022-08-01) (0) | 2022.08.02 |