시작하기무료로 시작하기

문 닫기

R6 객체의 메서드는 private$ 접두사를 사용해 비공개 필드에 접근할 수 있어요.

thing_factory <- R6Class(
  "Thing",
  private = list(
    a_field = "a value",
    another_field = 123
  ),
  public = list(
    do_something = function(x, y, z) {
      # Access the private fields
      paste(
        private$a_field, 
        private$another_field
      )
    }
  )
)

이 연습은 강의의 일부입니다

R에서 S3와 R6로 배우는 Object-Oriented Programming

강의 보기

연습 안내

전자레인지 공장이 일부만 정의되어 있어요. 여기에 비공개 필드 door_is_open와 공개 메서드 open_door가 추가되었어요.

  • 전자레인지 문을 닫는 공개 메서드 close_door()를 추가하세요.
    • 이 메서드는 인자를 받지 않아야 해요.
    • 함수 본문에서 door_is_open 필드를 FALSE로 설정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Add a close_door() method
microwave_oven_factory <- R6Class(
  "MicrowaveOven",
  private = list(
    power_rating_watts = 800,
    door_is_open = FALSE
  ),
  public = list(
    cook = function(time_seconds) {
      Sys.sleep(time_seconds)
      print("Your food is cooked!")
    },
    open_door = function() {
      private$door_is_open <- TRUE
    },
    ___ = ___
    
    
  )
)
코드 편집 및 실행