728x90
- 클로저는 다른 함수의 스코프에 있는 변수를 참조하고 저장할 수 있는 함수를 말한다.
- 자바에서는 함수를 일급 객체로 다룰 수 있게 됩니다.
import java.util.function.Supplier;
public class ClosureExample {
public static void main(String[] args) {
// 클로저를 이용한 간단한 덧셈 함수 예시
int a = 10;
int b = 20;
Supplier<Integer> adder = () -> a + b;
System.out.println("Result: " + adder.get()); // Result: 30
// 클로저를 이용해 값을 변경하는 예시
int c = 5;
Runnable updater = () -> {
c++; // 클로저가 참조하는 변수인 c의 값 변경
System.out.println("Updated value: " + c);
};
updater.run(); // Updated value: 6
updater.run(); // Updated value: 7
}
}
- adder gkatnsms `a` 와 `b`를 참조하고 변수의 값을 변경하지 않지만
- 클로저의 개념을 이용해 다른 함수에서 참조 가능한 함수를 만들어냄
- updater 함수는 `c`변수를 참조하고 값을 변경함.
728x90
'Language > 자바' 카테고리의 다른 글
final 키워드를 사용하면 좋은 점. (0) | 2023.02.22 |
---|---|
람다, 익명클래스는 왜 final 또는 effectively final 에만 접근 가능할까? (0) | 2023.02.22 |
왜 private인 필드가 변하지 않도록 하기 위해 final 키워드를 선언해야 하는가?(by.리플렉션) (0) | 2023.02.14 |
메서드 변수에 사용하는 static 키워드 (0) | 2023.02.14 |
final 키워드는 객체 참조에 어떤 영향을 미치는가? (0) | 2023.02.14 |
댓글