25년 2회 기출 5:40 질문입니다.
인터페이스 예외처리 문제 질문입니다.
일단 인터페이스에서 app메서드가 "정수 입력,출력에 예외를 던질 수 있음" 이라는 형태를 강제시킨 후
람다식(f와 n->n+9)으로 세부 내용을 구현하는게 맞는건가요?
추가로 인터페이스의 구현은 implements로 구현한다고 하셨는데 코드에 implements가 없는데 람다식 등으로 구현가능하면 사용하지 않아도 되는것인가요?
Câu trả lời 2
1
안녕하세요! 답변을 드립니다.
1) 람다식으로 세부 내용을 구현하는 게 맞나요?
맞습니다.
F는 추상 메서드가 하나뿐인 인터페이스라서, 이런 인터페이스를 함수형 인터페이스라고 합니다.
함수형 인터페이스는 람다식으로 구현할 수 있습니다.
즉 아래 둘은 본질적으로 같은 의미입니다.
람다식 버전
F f = x -> x * 2;익명 클래스로 바꾸면
F f = new F() {
@Override
public int app(int x) throws Exception {
return x * 2;
}
};이걸 짧게 쓴 것을 람다식으로 봐주시면 됩니다.
2) 왜 implements가 없나요?
오해가 있습니다. 이 키워드는 인터페이스를 상속처럼 받아서 클래스를 작성할 때 사용합니다.
implements는 클래스를 선언할 때 씁니다.
람다식은 클래스를 직접 선언하는 문법이 아닙니다.
예를 들어 클래스로 구현하면 implements가 필요합니다.
그런데 지금 코드는 클래스를 따로 만들지 않고,
F 타입이 필요한 자리에 람다식을 바로 넣었습니다.
이때 컴파일러가 이 람다식을 보고
“아, 이건 F의 app을 구현한 것으로 처리하면 되겠구나”
라고 판단해서 내부적으로 맞는 객체로 처리해 줍니다.
문법상 implements는 안 썼지만 의미상으로는 F를 구현한 것으로 봐주시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. 유찬혁님.
질문하신 인터페이스와 람다식, 그리고 예외처리에 관한 내용에 대해 설명드리겠습니다.
인터페이스와 람다식
인터페이스에서 메서드가 “정수 입력, 출력에 예외를 던질 수 있음”이라는 형태를 강제하는 것은 맞습니다. 이러한 인터페이스를 구현할 때는 일반적으로 “익명 클래스” 또는, Java 8 이후부터는 “람다식”을 사용하여 구현할 수 있습니다.
람다식을 이용한 구현: 람다식은 함수형 인터페이스(여러 개가 아닌 오직 하나의 추상 메서드를 가진 인터페이스)를 매우 간단하게 구현할 수 있는 방식입니다.
f와n->n+9같은 람다 표현식은 해당 인터페이스를 구현한 것과 동일한 역할을 합니다.implements키워드 사용 여부: 일반적으로 클래스를 통해 인터페이스를 구현할 때는implements키워드를 사용합니다. 그러나 함수형 인터페이스의 경우, 람다식은 그 인터페이스의 추상 메서드 하나를 구현하는 것과 동일한 효과가 있기 때문에, 람다식이나 메서드 참조를 사용할 때 직접implements키워드를 사용할 필요는 없습니다.
요약
정리하자면, Java에서 함수형 인터페이스와 람다식을 통해 사용자가 메서드를 간단히 작성할 수 있으며, 이때 직접적으로 implements를 사용할 필요가 없습니다. 람다식은 함수형 인터페이스가 요구하는 특정 시그니처의 메서드를 구현하여 사용하는 것입니다.
추가적인 정보를 위해 관련 질문 URL을 첨부드립니다:
- Java 람다식과 함수형 인터페이스 이해하기 - 람다식의 기본 원리와 작동 방식을 설명합니다.
- 자바 함수형 프로그래밍에 대한 질문 - 함수형 프로그래밍의 장점과 구현 방식을 다룹니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
26년 1회 실기 해설 강의
0
33
2
53번 4-1 자료 오류 있는 것 같습니다.
0
63
2
7번문제
0
49
2
C언어 변형문제 9번문제 Pdf 수정요청
0
39
2
메서드 오버드라드
0
41
2
실수
0
41
1
공부 우선순위 우선강의 알려주세요
0
75
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
41
2
모의고사1회 3번 파이썬문제
0
65
2
C언어 출제변형 6번 문제
0
43
2
c언어 출제변형 강의 질문
0
24
2
28:40
0
28
2
C : 언어 배열과 문자열 수업자료
0
23
2
파이썬 리스트, 딕셔너리 질문
0
36
2
모의고사 관련 질문 건
1
62
3
자료 내용 오류
0
57
2
정적 변수, 정적 메서드(static) v2
0
43
2
v1.2 와 v0.91 PDF
0
95
1
업캐스팅 (부모형태, 자식생성자)
0
45
2
정보처리산업기사 준비중입니다.
0
68
2
실기 D -6
0
100
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
51
3
업캐스팅 문제 풀면 업캐스팅이 상속과 문제풀 때 어떻게 해석해야할지 모르겠습니다.
0
54
2
강의파일 통합본
0
75
2

