LoslegenKostenlos loslegen

Die Kochfunktionen erweitern

Die Kindklasse kann die Funktionalität der Elternklasse erweitern, indem sie weitere öffentliche Methoden hinzufügt, deren Namen sich von denen in der Elternklasse unterscheiden.

Öffentliche Methoden können andere öffentliche Methoden aufrufen, indem sie ihren Namen mit self$ voranstellen.

Diese Übung ist Teil des Kurses

Objektorientierte Programmierung mit S3 und R6 in R

Kurs anzeigen

Anleitung zur Übung

In deinem Workspace wurde bereits eine Mikrowelle vordefiniert.

  • Erweitere die Definition der fancy microwave oven-Klasse um ein public-Element.
  • Füge eine öffentliche Methode cook_baked_potato() hinzu.
    • Diese soll keine Argumente annehmen.
    • Im Rumpf soll sie ihre eigene Methode cook() für 3 Sekunden aufrufen.
  • Erzeuge ein Objekt FancyMicrowaveOven und weise es a_fancy_microwave zu.
  • Rufe die Methode cook_baked_potato() von a_fancy_microwave auf.

Warnung: Versuche nicht, Ofenkartoffeln zu essen, nachdem sie nur 3 Sekunden gekocht wurden – sie schmecken schrecklich und du könntest eine Lebensmittelvergiftung bekommen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Explore microwave oven class
microwave_oven_factory

# Extend the class definition
fancy_microwave_oven_factory <- R6Class(
  "FancyMicrowaveOven",
  inherit = microwave_oven_factory,
  # Add a public list with a cook baked potato method
  ___ = ___(
    ___ = ___
    
    
  )
)

# Instantiate a fancy microwave
a_fancy_microwave <- ___

# Call the cook_baked_potato() method
___
Code bearbeiten und ausführen