1. Learn
  2. /
  3. Courses
  4. /
  5. Programare orientată pe obiecte cu S3 și R6 în R

Connected

Exercise

Să învățăm să gătim

Al treilea argument al funcției R6Class() se numește public și conține funcționalitatea disponibilă utilizatorului pentru obiectul respectiv. Acest argument trebuie să fie o listă, cu nume pentru fiecare element al său.

Elementul public al unei clase R6 conține funcționalitatea accesibilă utilizatorului. De obicei, va conține doar funcții.

Patternul actualizat pentru crearea unui generator de clasă R6 este următorul:

thing_factory <- R6Class(
  "Thing",
  private = list(
    a_field = "a value",
    another_field = 123
  ),
  public = list(
    do_something = function(x, y, z) {
      # Do something here
    }
  )
)

Instructions

100 XP

O fabrică de cuptoare cu microunde a fost definită parțial pentru tine.

  • Actualizează elementul public al definiției pentru a include o metodă cook.
    • Metoda cook este o funcție.
    • Ar trebui să aibă un singur argument numit time_seconds, care reprezintă durata de gătire.
    • În corpul metodei cook, transmite time_seconds către Sys.sleep() (docs), care nu face nimic pe durata timpului specificat.
    • La final, metoda cook ar trebui să afișeze cu print() (docs) șirul "Your food is cooked!"
  • Creează un obiect cuptor cu microunde numit a_microwave_oven folosind metoda new() a fabricii microwave_oven_factory.
  • Apelează metoda cook() a obiectului a_microwave_oven, pentru 1 secundă.