JAVA/연습문제

쉽게 배우는 자바 프로그래밍 2판 10장 연습문제 Part.1 (1번 ~ 5번)

세언이 2022. 11. 1. 20:40
반응형

 

# 개발 공부하는 초보자가 작성한 답안이니 정답이 아닐 수 있습니다!!!

 

 

1. 다음 중 람다식으로 적합하지 않은 것은?

  1. () -> {}
  2. a -> "apple"
  3. i -> return "hi " + i
  4. (a, b) -> a + b
🧤정답🧤
3번

해설 :
return문으로 나타낼 때에는 대괄호({})가 필요하다.
ex) i -> { return "hi" + i; };

 

 

2. 다음 중 함수형 인터페이스는?

  1. interface Computable { void add() }
  2. interface Computable { void add(); }
  3. interface Computable { void add() { } }
  4. interface Computable { void add(); void sub(); }
🧤정답🧤
2번

해설 :
인터페이스는 추상클래스이므로 몸통만 없을 수 있다.

 

3. 다음과 같은 람다식에 적용할 수 있는 가장 적절한 함수형 인터페이스는? 여기서 m은 임의의 클래스의 객체이며 getNumber()는 int 타입의 번호를 반환하는 메서드이다.

m -> m.getNumber()

1. ToIntFunction

2. IntFunction

3. BinaryOperator

4. Consumer

🧤정답🧤
1번

해설 :
ToIntFunction는 객체를 int로
IntFunction는 int를 객체로
Consumer는 반환타입이 void이다.

 

4. 클래스 Box는 정숫값을 반환하는 getHeight()라는 메서드를 포함한다고 가정할 때 다음 코드가 문법적으로 적절하다. (O, X)

📢주어진 조건📢
Predicate<Box> p = (Box b) -> b.getHeight();
🧤정답🧤
X

해설 :
Predicate의 반환 값은 boolean이기 때문에 정수값으로 반환하는 메서드를 이용할 수 없다.

 

5. 다음과 같은 함수형 인터페이스가 있다. 

📢주어진 조건📢
interface Foo{
	int foo();
}

아래 실행문을 테스트 프로그램에 포함하면 문법적으로 오류가 발생한다. (O, X)

📢주어진 조건📢
Foo f = () -> System.out.println("어이쿠!");
🧤정답🧤
O

해설 :
반환 값이 int형 타입이어야 하기 때문에 오류가 발생한다.

 

반응형