Bắt đầu ngayBắt đầu miễn phí

Đóng cửa

Các phương thức của một đối tượng R6 có thể truy cập các trường private bằng tiền tố 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
      )
    }
  )
)

Bài tập này là một phần của khóa học

Lập trình hướng đối tượng với S3 và R6 trong R

Xem khóa học

Hướng dẫn bài tập

Một nhà máy sản xuất lò vi sóng đã được định nghĩa sẵn một phần cho bạn. Nó đã được cập nhật để bao gồm trường private door_is_open và phương thức public open_door.

  • Thêm một phương thức public tên là close_door() để đóng cửa lò vi sóng.
    • Phương thức không nhận đối số nào.
    • Trong thân hàm, gán trường door_is_open thành FALSE.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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
    },
    ___ = ___
    
    
  )
)
Chỉnh sửa và Chạy Mã