Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

속성 특성(Attribute)

속성 특성의 용도

클래스 정의에 특성을 지정하여 특정 용도에 맞게 속성의 동작을 사용자 지정할 수 있습니다. 특성을 설정하여 속성에 대한 액세스, 데이터 저장공간, 가시성과 같은 특징을 제어할 수 있습니다. 서브클래스는 슈퍼클래스 멤버 특성을 상속하지 않습니다.

속성 특성 지정하기

properties 키워드와 동일한 라인에 속성 특성을 할당합니다.

properties (Attribute1 = value1, Attribute2 = value2,...)
   ...
end

예를 들어, private 액세스를 갖는 속성 Data를 정의해 보겠습니다.

properties (Access = private)
   Data
end

값이 true인 특성을 지정할 때는 더욱 단순한 구문을 사용할 수 있습니다. 특성 이름 자체는 true를 의미하며 이름에 NOT 연산자(~)를 추가하는 경우 false를 뜻하게 됩니다. 예를 들어, 다음 블록은 추상 속성을 정의합니다.

properties (Abstract)
   ...
end

속성 특성 표

모든 속성이 다음 표에 나와 있는 특성을 지원합니다. 특성 값은 디폴트가 아닌 값을 지정하는 properties...end 코드 블록 내에 정의된 모든 속성에 적용됩니다. 명시적으로 정의하지 않은 특성은 디폴트 값을 갖게 됩니다.

속성 특성(Attribute)

특성

추가 정보

AbortSet

  • true – 새 값이 현재 값과 동일한 경우 MATLAB®은 속성값을 설정하거나 set 메서드를 호출하지 않습니다.

  • false(디폴트 값) – MATLAB은 현재 값에 관계없이 속성값을 설정합니다.

핸들 클래스만 해당. AbortSettrue로 설정하면 속성의 PreSet 이벤트 및 PostSet 이벤트에 대한 트리거도 차단됩니다.

자세한 내용은 Assignment When Property Value Is Unchanged 항목을 참조하십시오.

Abstract

  • true – 속성에 구현이 없지만 구체 서브클래스(Concrete Subclass)는 Abstracttrue로 설정하지 않고 이 속성을 재정의해야 합니다.

  • false(디폴트 값) – 속성이 구체 속성이므로 서브클래스에 재정의할 필요가 없습니다.

추상 속성은 set 액세스 메서드나 get 액세스 메서드를 정의할 수 없습니다. 속성 get 및 set 메서드 항목을 참조하십시오.

추상 속성은 초기값을 정의할 수 없습니다.

봉인(Sealed) 클래스는 추상 멤버를 정의할 수 없습니다.

Access

  • public(디폴트 값) – 모든 코드에서 속성에 액세스할 수 있습니다.

  • protected – 정의 클래스 또는 그 서브클래스에서 속성에 액세스할 수 있습니다.

  • private – 정의 클래스의 멤버만 속성에 액세스할 수 있습니다.

  • 이 속성에 대한 get 액세스 권한과 set 액세스 권한을 갖는 클래스의 목록. 클래스를 단일 meta.class 객체 또는 meta.class 객체로 구성된 셀형 배열로 지정합니다. 자세한 내용은 속성 액세스 목록 항목을 참조하십시오.

SetAccessGetAccess가 같은 값을 가지도록 설정하려면 Access를 사용하십시오.

Access를 빈 셀형 배열 {}로 지정하는 것은 private 액세스와 같습니다.

자세한 내용은 클래스 멤버 액세스 항목을 참조하십시오.

Constant

  • true – 이 속성은 모든 클래스 인스턴스에서 동일한 값을 가집니다.

  • false(디폴트 값) – 속성값이 인스턴스 간에 다를 수 있습니다.

서브클래스는 상수 속성을 상속하지만 변경할 수는 없습니다.

상수 속성을 종속 속성으로 정의할 수 없습니다.

상수 속성에 대한 SetAccess의 값은 무시됩니다.

자세한 내용은 상수 값으로 클래스 속성 정의하기 항목을 참조하십시오.

Dependent

  • true – 이 속성값은 객체에 저장되지 않습니다. 속성에 액세스할 때 값이 계산됩니다.

  • false(디폴트 값) – 이 속성값은 객체에 저장됩니다.

종속 속성에 대해 set 메서드를 정의할 수 있지만 set 메서드는 사실상 속성의 값을 설정할 수 없습니다. set 메서드는 또 다른 속성의 값을 설정하는 등 다른 동작을 수행할 수 있습니다. 예제는 종속 속성에 set 메서드를 사용하는 경우 항목을 참조하십시오.

종속 속성의 get 메서드에서 반환된 값은 isequal을 사용하여 객체가 동일한지를 테스트할 때 고려되지 않습니다.

GetAccess

  • public(디폴트 값) – 모든 코드에서 속성을 읽어올 수 있습니다.

  • protected – 정의 클래스 또는 그 서브클래스에서 속성을 읽어올 수 있습니다.

  • private – 정의 클래스의 멤버만 속성을 읽어올 수 있습니다.

  • 이 속성을 읽어올 수 있는 클래스의 목록. 클래스를 단일 meta.class 객체 또는 meta.class 객체로 구성된 셀형 배열로 지정합니다. 자세한 내용은 속성 액세스 목록 항목을 참조하십시오.

GetAccess를 빈 셀형 배열 {}로 지정하는 것은 private 액세스와 같습니다.

MATLAB은 protected 또는 private GetAccess를 갖는 속성의 이름 및 값을 명령 창에 표시하지 않습니다.

모든 서브클래스는 SetAccess 속성 특성과 GetAccess 속성 특성에 대해 슈퍼클래스와 같은 값을 지정해야 합니다.

자세한 내용은 클래스 멤버 액세스 항목을 참조하십시오.

GetObservable

  • true – 핸들 클래스 속성에 대한 리스너를 생성할 수 있습니다. 리스너는 속성값을 쿼리할 때마다 호출됩니다.

  • false(디폴트 값) – 리스너가 이 속성에 액세스할 수 없습니다.

자세한 내용은 속성 설정 및 쿼리 이벤트 항목을 참조하십시오.

Hidden

  • true – 속성이 속성 목록이나 get, set 또는 properties 함수에 대한 호출 결과에 표시되지 않습니다.

  • false(디폴트 값) – 속성이 표시됩니다.

MATLAB은 Hidden 특성이 true인 속성의 이름 및 값을 명령 창에 표시하지 않습니다. 그러나 클래스 다이어그램 뷰어 앱에는 숨겨진 속성이 표시됩니다.

NonCopyable

  • true – 속성값은 해당 속성값을 정의한 객체가 복사될 때 복사되지 않습니다.

  • false(디폴트 값) – 속성값은 객체가 복사될 때 복사됩니다.

핸들 클래스에서는 NonCopyabletrue로만 설정할 수 있습니다.

자세한 내용은 Exclude Properties from Copy 항목을 참조하십시오.

PartialMatchPriority

양의 정수 – get 메서드 및 set 메서드에서 사용되는 부분 속성 이름 일치의 상대적 우선 순위를 정의합니다. 디폴트 값은 1입니다.

matlab.mixin.SetGet의 서브클래스에만 사용합니다.

자세한 내용은 부분 속성 이름 일치에 대한 우선 순위 설정하기 항목을 참조하십시오.

SetAccess

  • public(디폴트 값) — 모든 코드에서 속성을 설정할 수 있습니다.

  • protected(디폴트 값) — 정의 클래스 또는 해당 서브클래스에서 속성을 설정할 수 있습니다.

  • private — 정의 클래스의 멤버만 속성을 설정할 수 있습니다.

  • immutable — 생성자만 속성을 설정할 수 있습니다.

  • 이 속성에 대한 set 액세스 권한을 갖는 클래스 목록. 클래스를 단일 meta.class 객체 또는 meta.class 객체로 구성된 셀형 배열로 지정합니다. 자세한 내용은 속성 액세스 목록 항목을 참조하십시오.

모든 서브클래스는 SetAccess 속성 특성과 GetAccess 속성 특성에 대해 슈퍼클래스와 같은 값을 지정해야 합니다.

자세한 내용은 클래스 멤버 액세스, Properties Containing Objects변경 가능한 속성과 변경 불가능한 속성 항목을 참조하십시오.

SetObservable

  • true – 핸들 클래스 속성에 대한 리스너를 생성할 수 있습니다. 리스너는 속성값을 설정할 때마다 호출됩니다.

  • false(디폴트 값) – 리스너가 이 속성에 액세스할 수 없습니다.

자세한 내용은 속성 설정 및 쿼리 이벤트 항목을 참조하십시오.

Transient

  • true – 객체가 파일에 저장되거나 MATLAB에서 다른 프로그램(예: MATLAB Engine 응용 프로그램)으로 전송될 때 속성값이 저장되지 않습니다.

  • false(디폴트 값) – 객체가 저장될 때 속성값이 저장됩니다.

자세한 내용은 객체에 대한 저장 및 불러오기 프로세스 항목을 참조하십시오.

프레임워크 특성

특정 프레임워크 기본 클래스를 사용하는 클래스는 프레임워크별 특성을 가집니다. 이러한 특성에 대한 자세한 내용은 사용하는 특정 기본 클래스에 대한 문서를 참조하십시오.

속성 액세스 목록

Access, GetAccessSetAccess 특성에 대한 meta.class 인스턴스의 목록을 사용할 수 있습니다. 예를 들어 다음 클래스는 Prop1Prop2 속성에 대한 액세스 목록을 선언합니다.

classdef PropertyAccess
   properties (GetAccess = {?ClassA, ?ClassB})
      Prop1
   end
   properties (Access = ?ClassC)
      Prop2
   end
end

Prop1:

  • ClassA 클래스와 ClassB 클래스는 Prop1에 대한 get 액세스 권한을 갖습니다.

  • ClassAClassB의 모든 서브클래스는 Prop1에 대한 get 액세스 권한을 갖습니다.

  • 액세스 목록은 상속되지 않으므로, PropertyAccess의 서브클래스는 Prop1에 대한 get 액세스 권한을 명시적으로 정의하지 않는 한 해당 get 액세스 권한이 없습니다.

Prop2:

  • ClassCProp2에 대한 get 액세스 권한과 set 액세스 권한을 갖습니다.

  • ClassC의 모든 서브클래스는 Prop2에 대한 get 액세스 권한과 set 액세스 권한을 갖습니다.

  • 액세스 목록은 상속되지 않으므로, PropertyAccess의 서브클래스는 Prop2에 대한 액세스 권한을 명시적으로 정의하지 않는 한 해당 액세스 권한이 없습니다.

관련 항목