강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

유찬혁님의 프로필 이미지
유찬혁

작성한 질문수

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

(기출) 2025년 2회 코드문제-1

25년 2회 기출 5:40 질문입니다.

해결된 질문

작성

·

24

0

인터페이스 예외처리 문제 질문입니다.

일단 인터페이스에서 app메서드가 "정수 입력,출력에 예외를 던질 수 있음" 이라는 형태를 강제시킨 후

람다식(f와 n->n+9)으로 세부 내용을 구현하는게 맞는건가요?

 

추가로 인터페이스의 구현은 implements로 구현한다고 하셨는데 코드에 implements가 없는데 람다식 등으로 구현가능하면 사용하지 않아도 되는것인가요?

퀴즈

51%나 틀려요. 한번 도전해보세요!

자바 상속에서 자식 객체 생성 시 생성자 호출 순서의 첫 단계는 무엇일까요?

자식 클래스 생성자 코드 실행

부모 클래스의 기본 생성자 호출

자식 클래스 메소드 호출

정적 초기화 블록 실행

답변 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 이후부터는 “람다식”을 사용하여 구현할 수 있습니다.

  • 람다식을 이용한 구현: 람다식은 함수형 인터페이스(여러 개가 아닌 오직 하나의 추상 메서드를 가진 인터페이스)를 매우 간단하게 구현할 수 있는 방식입니다. fn->n+9 같은 람다 표현식은 해당 인터페이스를 구현한 것과 동일한 역할을 합니다.

  • implements 키워드 사용 여부: 일반적으로 클래스를 통해 인터페이스를 구현할 때는 implements 키워드를 사용합니다. 그러나 함수형 인터페이스의 경우, 람다식은 그 인터페이스의 추상 메서드 하나를 구현하는 것과 동일한 효과가 있기 때문에, 람다식이나 메서드 참조를 사용할 때 직접 implements 키워드를 사용할 필요는 없습니다.

요약

정리하자면, Java에서 함수형 인터페이스와 람다식을 통해 사용자가 메서드를 간단히 작성할 수 있으며, 이때 직접적으로 implements를 사용할 필요가 없습니다. 람다식은 함수형 인터페이스가 요구하는 특정 시그니처의 메서드를 구현하여 사용하는 것입니다.

추가적인 정보를 위해 관련 질문 URL을 첨부드립니다:
- Java 람다식과 함수형 인터페이스 이해하기 - 람다식의 기본 원리와 작동 방식을 설명합니다.
- 자바 함수형 프로그래밍에 대한 질문 - 함수형 프로그래밍의 장점과 구현 방식을 다룹니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

유찬혁님의 프로필 이미지
유찬혁

작성한 질문수

질문하기