Main Content

변경 가능한 속성과 변경 불가능한 속성

속성값에 대한 set 액세스

속성 SetAccess의 특성을 사용하여, 코드가 어떤 조건에서 객체 속성값을 수정할 수 있는지를 정할 수 있습니다. set 액세스의 수준은 4가지가 있으며, 이를 통해 객체 속성값에 대한 다양한 수준의 액세스 권한을 제공합니다.

  • SetAccess = public — 객체에 대한 액세스 권한이 있는 코드는 퍼블릭 속성값을 설정할 수 있습니다. 객체 속성 수정과 관련해 핸들 클래스의 동작과 값 클래스의 동작 간에는 차이가 있습니다.

  • SetAccess = protected — 클래스 메서드 또는 서브클래스의 메서드 내에서 실행되는 코드만 속성값을 설정할 수 있습니다. 클래스나 그 서브클래스가 객체 속성의 값을 변경하도록 메서드를 정의하지 않는 한, 객체 속성의 값을 변경할 수 없습니다.

  • SetAccess = private — 정의 클래스만 속성값을 설정할 수 있습니다. 클래스가 속성을 설정하는 메서드를 정의한 경우에만 객체 속성의 값을 변경할 수 있습니다.

  • SetAccess = immutable — 속성값이 생성자에 설정됩니다. 객체 생성 후에는 변경 불가능한 속성의 값을 변경할 수 없습니다. 속성값을 디폴트 값으로 설정하거나 클래스 생성자에서 속성값을 설정하십시오. 변경 불가능한 속성에 대해서는 속성 set 메서드(set.PropertyName)를 정의할 수 없습니다.

관련 내용은 Properties Containing Objects 항목을 참조하십시오.

변경 불가능한 속성 정의하기

다음 클래스 정의에서 Immute 클래스 생성자만 CurrentDate 속성값을 설정할 수 있습니다.

classdef Immute
   properties (SetAccess = immutable)
      CurrentDate
   end
   methods
      function obj = Immute
         obj.CurrentDate = datetime("today");
      end
   end
end
a = Immute
a = 

  Immute with properties:

    CurrentDate: 09-Jun-2022

관련 항목