1. Learn
  2. /
  3. 课程
  4. /
  5. Programowanie obiektowe z S3 i R6 w R

Connected

道练习

Odczytaj ocenę mocy

Dane przechowywane przez obiekt R6 są celowo ukryte przed użytkownikiem – przechowuje się je w elemencie private. To właśnie jest zasada enkapsulacji.

Jeśli chcesz udostępnić dostęp do wybranych wartości danych, możesz użyć aktywnego powiązania. Są to funkcje, które zachowują się jak zmienne.

Aktywne powiązania są przechowywane w elemencie active obiektu R6. Aby utworzyć aktywne powiązanie pozwalające odczytać prywatne pole danych (czyli powiązanie „tylko do odczytu"), tworzysz funkcję bez argumentów, która po prostu zwraca odpowiedni element prywatny.

Szablon tworzenia aktywnego powiązania tylko do odczytu wygląda następująco:

thing_factory <- R6Class(
  "Thing",
  private = list(
    ..a_field = "a value"
  ),
  active = list(
    a_field = function() {
      private$..a_field
    }
  )
)

Aktywne powiązanie wywołuje się jak zmienną, a nie jak funkcję.

a_thing <- thing_factory$new()
a_thing$a_field   # not a_thing$a_field()

说明

100 XP

Fabryka kuchenki mikrofalowej została już częściowo zdefiniowana.

  • Uzupełnij definicję o aktywne powiązanie tylko do odczytu, które umożliwi odczyt oceny mocy.
    • Aktywne powiązanie powinno mieć nazwę power_rating_watts.
    • Zdefiniuj je jako funkcję bez argumentów.
    • Ciało funkcji powinno po prostu zwracać prywatne pole ..power_rating_watts.
  • Utwórz obiekt kuchenki mikrofalowej i przypisz go do zmiennej a_microwave_oven.
  • Odczytaj jego ocenę mocy.