Pişirmeyi Öğrenmek
R6Class()'ın üçüncü argümanı public olarak adlandırılır ve nesnenin kullanıcıya yönelik işlevselliğini barındırır. Bu argüman, her bir öğesi adlandırılmış bir liste olmalıdır.
Bir R6 sınıfının public öğesi, kullanıcının erişebildiği işlevleri içerir. Genellikle yalnızca fonksiyonlar bulunur.
Bir R6 sınıf üreticisi oluşturmanın güncellenmiş deseni şöyledir:
thing_factory <- R6Class(
"Thing",
private = list(
a_field = "a value",
another_field = 123
),
public = list(
do_something = function(x, y, z) {
# Burada bir şeyler yap
}
)
)
Bu egzersiz, kursun bir parçasıdır
R'de S3 ve R6 ile Nesne Yönelimli Programlama
Egzersiz talimatları
Senin için kısmen tanımlanmış bir mikrodalga fırın fabrikası var.
- Tanımın
publicöğesini güncelleyerek bircookmetodu ekle.cookmetodu bir fonksiyondur.- Pişirme süresini belirtmek için
time_secondsadlı tek bir argümana sahip olmalı. cookmetodunun gövdesinde, ayrılan süre boyunca hiçbir şey yapmayanSys.sleep()'e (docs)time_secondsdeğerini geçir.- Son olarak,
cookmetoduprint()(docs) ile"Your food is cooked!"dizgesini yazdırmalı.
microwave_oven_factory'ninnew()metodunu kullanaraka_microwave_ovenadlı bir mikrodalga fırın nesnesi oluştur.a_microwave_oven'ıncook()metodunu 1 saniyelik süreyle çağır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Add a cook method to the factory definition
microwave_oven_factory <- R6Class(
"MicrowaveOven",
private = list(
power_rating_watts = 800
),
public = list(
___ = ___(___) {
___
___
}
)
)
# Create microwave oven object
a_microwave_oven <- ___
# Call cook method for 1 second
___