Aan de slagGa gratis aan de slag

De kookmogelijkheden uitbreiden

De kindklasse kan de functionaliteit van de ouder uitbreiden door extra public-methoden toe te voegen met andere namen dan die in de ouderklasse beschikbaar zijn.

Public-methoden kunnen andere public-methoden aanroepen door hun naam te laten voorafgaan door self$.

Deze oefening maakt deel uit van de cursus

Objectgeoriënteerd programmeren met S3 en R6 in R

Cursus bekijken

Oefeninstructies

Er is een magnetron vooraf gedefinieerd in je werkruimte.

  • Breid de definitie van de fancy magnetronklasse uit met een public-element.
  • Voeg een publieke methode cook_baked_potato() toe.
    • Deze neemt geen argumenten.
    • In de body roept hij zijn eigen cook()-methode aan voor 3 seconden.
  • Maak een FancyMicrowaveOven-object en wijs het toe aan a_fancy_microwave.
  • Roep de methode cook_baked_potato() van a_fancy_microwave aan.

Waarschuwing: Probeer geen gepofte aardappelen te eten nadat ze 3 seconden zijn gekookt; ze smaken dan vreselijk en je kunt er voedselvergiftiging van krijgen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren