CommencerCommencer gratuitement

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

Afficher le cours

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 FALSE au champ door_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
    },
    ___ = ___
    
    
  )
)
Modifier et exécuter le code