<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/94dbaed9-349c-449d-bc43-25de3ae5a780/SpartaIconScale9.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/94dbaed9-349c-449d-bc43-25de3ae5a780/SpartaIconScale9.png" width="40px" /> 수업 목표
<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/393cd135-1603-4797-8fa6-42abcfedd782/SpartaIconS24.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/393cd135-1603-4797-8fa6-42abcfedd782/SpartaIconS24.png" width="40px" />
목차
</aside>
<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/11965e36-5cde-4d10-b470-06dfbe247327/scc캐릭터_아하_280x280.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/83c75a39-3aba-4ba4-a792-7aefe4b07895/11965e36-5cde-4d10-b470-06dfbe247327/scc캐릭터_아하_280x280.png" width="40px" /> 필수 프로그램 설치
프로그램 설치가이드를 따라 천천히 설치를 진행해주세요.
✅ OpenJDK 8버전 이상
✅ IntelliJ (Community)
✅ Google Chrome
</aside>
<aside> 📚
익명 클래스란?
익명 클래스는 이름이 없는 클래스를 익명 클래스라고 합니다.인터페이스, 클래스(일반, 추상)의 구현과 상속을 활용해 익명 클래스를 구현할 수 있습니다.
→ 람다에서는 인터페이스를 사용한 익명 클래스가 활용됩니다.
</aside><aside> 💡
인터페이스를 활용한 익명 클래스 예제
public interface Calculator {
int sum(int a, int b);
}
public class Main {
public static void main(String[] args) {
// ✅ 익명 클래스 활용
Calculator calculator1 = new Calculator() {
@Override
public int sum(int a, int b) {
return a + b;
}
};
int ret1 = calculator1.sum(1, 1);
System.out.println("ret1 = " + ret1);
}
}
</aside>
<aside> 📚
람다(Lambda)가 무엇인지 학습해 봅시다.
함수형 인터페이스 를 통해서 구현하는 것을 권장합니다.
→ 하나의 추상 메서드만 가져야하기 때문입니다.
→ 하지만, 하나의 추상 메서드를 가진 일반 인터페이스를 통해서도 사용 가능합니다.
</aside><aside> 📚
람다식을 활용한 익명 클래스 변환 방법
(a, b) -> a + b 람다 표현식을 보고 sum() 메서드를 가진 익명 클래스를 구현합니다.Calculator 인터페이스에 추상 메서드가 하나뿐이기 때문에 컴파일러는 (a, b) -> a + b 람다 표현식이sum() 메서드라고 추론 가능하기 때문입니다.// 람다 표현식
Calculator calculator1 = (a, b) -> a + b;
// 익명클래스
Calculator calculator1 = new Calculator() {
@Override
public int sum(int a, int b) {
return a + b;
}
};
@FunctionalInterface // ✅ 함수형 인터페이스 선언
public interface Calculator {
int sum(int a, int b); // ✅ 오직 하나의 추상 메서드만 선언해야합니다.
}
public class Main {
public static void main(String[] args) {
...
// ✅ 람다식 활용
Calculator calculator2 = (a, b) -> a + b;
int ret2 = calculator2.sum(2, 2);
System.out.println("ret2 = " + ret2);
}
}
</aside>