Đó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
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_openthànhFALSE.
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
},
___ = ___
)
)