문 닫기
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
},
___ = ___
)
)