1. 학습
  2. /
  3. 강의
  4. /
  5. R에서 S3와 R6로 배우는 Object-Oriented Programming

Connected

연습 문제

Next Method 작성하기

객체에 여러 클래스가 있을 때, 이들 클래스에 대한 메서드를 연쇄적으로 호출하고 싶을 수 있어요. 이를 위해 NextMethod()를 사용합니다 (문서).

S3 메서드는 다음과 같은 형태가 됩니다:

an_s3_method.some_class <- function(x, ...)
{
  # some_class에 대해 동작한 다음
  NextMethod("an_s3_method")
}

즉, NextMethod()는 메서드의 마지막 줄에 와야 합니다.

지침

100 XP

작업 공간에는 변수 kitty와 제네릭 함수 what_am_i()가 미리 정의되어 있어요.

  • ls.str()로 작업 공간을 확인하세요.
  • what_am_i()의 cat 메서드 정의를 완성하세요.
    • message() (문서)로 "I'm a cat"을(를) 출력하세요.
    • 제네릭 이름을 문자열로 전달하여 NextMethod() (문서)를 호출하세요.
  • what_am_i()의 mammal 메서드를 정의하세요.
    • 인자는 cat 메서드와 동일합니다.
    • message()로 "I'm a mammal"을(를) 출력하세요.
    • NextMethod()를 호출하세요.
  • what_am_i()의 character 메서드를 정의하세요.
    • 인자는 cat 메서드와 동일합니다.
    • message()로 "I'm a character vector"을(를) 출력하세요.
    • NextMethod()는 호출하지 마세요.
  • kitty를 입력으로 하여 what_am_i()를 호출하고, 세 가지 메시지가 모두 표시되는지 확인하세요.