Die Tür schließen
Methoden eines R6-Objekts können über das Präfix private$ auf dessen private Felder zugreifen.
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
)
}
)
)
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung mit S3 und R6 in R
Anleitung zur Übung
Eine Mikrowellenofen-Fabrik wurde teilweise für dich definiert. Sie wurde um ein privates Feld door_is_open und eine öffentliche Methode open_door ergänzt.
- Füge eine öffentliche Methode namens
close_door()hinzu, um die Mikrowellentür zu schließen.- Die Methode darf keine Argumente annehmen.
- Setze im Rumpf der Funktion das Feld
door_is_openaufFALSE.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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
},
___ = ___
)
)