1. 학습
  2. /
  3. 강의
  4. /
  5. R에서 S3와 R6로 배우는 Object-Oriented Programming

Connected

연습 문제

클론의 역습 (1)

R6 객체는 environment와 동일하게 참조에 의한 복사 방식을 사용해요. 즉, <- 할당으로 R6 객체를 복사하면, 한 객체에서의 변경이 복사본에도 그대로 반영됩니다.

a_reference_copy <- an_r6_object

R6 객체에는 값에 의한 복사를 위한 clone() 메서드가 자동으로 생성되어 있어요. 이를 사용하면 한 복사본의 변경이 다른 복사본에 영향을 주지 않습니다.

a_value <- an_r6_object$clone()

지침

100 XP

작업 공간에는 microwave_oven_factory라는 전자레인지 팩토리가 미리 정의되어 있어요.

  • MicrowaveOven 객체를 생성해 a_microwave_oven에 할당하세요.
  • <- 할당을 사용해 전자레인지를 assigned_microwave_oven라는 변수에 복사하세요.
  • a_microwave_oven의 clone() 메서드를 사용해 전자레인지를 cloned_microwave_oven라는 변수에 복사하세요.
  • a_microwave_oven의 power_level_watts 필드를 400으로 변경하세요.
  • a_microwave_oven와 assigned_microwave_oven의 power_level_watts 필드가 identical()인지 확인하세요 (docs).
  • a_microwave_oven와 cloned_microwave_oven의 power_level_watts 필드가 identical()이 아닌지 확인하세요 (docs).