Comece agoraComece grátis

Feche a porta

Métodos de um objeto R6 podem acessar seus campos privados usando o prefixo 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
      )
    }
  )
)

Este exercicio faz parte do curso

Programação Orientada a Objetos com S3 e R6 em R

Ver curso

Instruções do exercicio

Uma fábrica de fornos de micro-ondas foi parcialmente definida para você. Ela foi atualizada para incluir um campo privado door_is_open e um método público open_door.

  • Adicione um método público chamado close_door() para fechar a porta do micro-ondas.
    • O método não deve receber argumentos.
    • No corpo da função, defina o campo door_is_open como FALSE.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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
    },
    ___ = ___
    
    
  )
)
Editar e Executar Código