开始使用免费开始使用

关上门

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 面向对象编程

查看课程

练习说明

我们为您部分定义了一个微波炉工厂。它已更新,包含一个私有字段 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
    },
    ___ = ___
    
    
  )
)
编辑并运行代码