BaşlayınÜcretsiz başlayın

Kapıyı Kapat

Bir R6 nesnesinin metotları, private$ önekiyle özel alanlarına erişebilir.

thing_factory <- R6Class(
  "Thing",
  private = list(
    a_field = "a value",
    another_field = 123
  ),
  public = list(
    do_something = function(x, y, z) {
      # Özel alanlara eriş
      paste(
        private$a_field, 
        private$another_field
      )
    }
  )
)

Bu egzersiz, kursun bir parçasıdır

R'de S3 ve R6 ile Nesne Yönelimli Programlama

Kursa Göz Atın

Egzersiz talimatları

Senin için mikrodalga fırın fabrikası kısmen tanımlandı. Özel bir door_is_open alanı ve genel bir open_door yöntemi eklenecek şekilde güncellendi.

  • Mikrodalga kapağını kapatmak için close_door() adlı bir genel yöntem ekle.
    • Yöntem hiçbir argüman almamalı.
    • Fonksiyonun gövdesinde door_is_open alanını FALSE olarak ayarla.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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
    },
    ___ = ___
    
    
  )
)
Kodu Düzenle ve Çalıştır