변경 가능한 속성과 변경 불가능한 속성
속성값에 대한 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