Fermer la porte
Les méthodes d’un objet R6 peuvent accéder à ses champs privés en utilisant le préfixe 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
)
}
)
)
Cet exercice fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions
Une usine de fours à micro-ondes a été partiellement définie pour vous. Elle a été mise à jour pour inclure un champ privé door_is_open et une méthode publique open_door.
- Ajoutez une méthode publique nommée
close_door()pour fermer la porte du micro-ondes.- La méthode ne doit prendre aucun argument.
- Dans le corps de la fonction, affectez la valeur
FALSEau champdoor_is_open.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
},
___ = ___
)
)