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

Connected

연습 문제

요리 배우기

R6Class()의 세 번째 인수는 public이며, 객체의 사용자 대상 기능을 담습니다. 이 인수는 각 요소에 이름이 붙은 리스트여야 합니다.

R6 클래스의 public 요소에는 사용자가 사용할 수 있는 기능이 들어 있습니다. 보통 함수만 포함합니다.

R6 클래스 제네레이터를 만드는 업데이트된 패턴은 다음과 같습니다:

thing_factory <- R6Class(
  "Thing",
  private = list(
    a_field = "a value",
    another_field = 123
  ),
  public = list(
    do_something = function(x, y, z) {
      # Do something here
    }
  )
)

지침

100 XP

전자레인지 공장이 일부만 정의되어 있습니다.

  • 정의의 public 요소를 업데이트하여 cook 메서드를 포함하세요.
    • cook 메서드는 함수입니다.
    • 조리 시간을 나타내는 time_seconds라는 하나의 인수를 가져야 합니다.
    • cook 메서드 본문에서, time_seconds를 Sys.sleep()(docs)에 전달하세요. 이 함수는 지정된 시간 동안 아무 작업도 하지 않습니다.
    • 마지막으로, cook 메서드는 문자열 "Your food is cooked!"를 print()(docs)해야 합니다.
  • microwave_oven_factory의 new() 메서드를 사용해 a_microwave_oven이라는 전자레인지 객체를 생성하세요.
  • a_microwave_oven의 cook() 메서드를 1초 동안 호출하세요.