Main Content

meta.property 클래스

패키지: meta
슈퍼클래스: meta.MetaData

MATLAB 클래스의 속성 설명

설명

meta.property 클래스는 MATLAB® 클래스의 속성에 대한 정보를 제공합니다. meta.property 클래스의 속성은 클래스 정의에 구문으로 지정된 속성 특성의 값 및 기타 정보를 포함합니다. 모든 속성은 읽기 전용입니다.

meta.property 클래스는 handle 클래스입니다.

클래스 특성

Abstract
true
ConstructOnLoad
true

클래스 특성에 대한 자세한 내용은 클래스 특성 항목을 참조하십시오.

생성

meta.property 객체는 직접 인스턴스화할 수 없습니다. meta.property 객체는 meta.class PropertyList 속성에서 가져와야 합니다. 이 속성에는 meta.property 객체로 구성된 배열이, 각 클래스 속성별로 하나씩 들어 있습니다. 예를 들어, 아래 예에서 ClassName을 속성을 쿼리하려는 클래스의 이름으로 바꿉니다.

mco = ?ClassName;
plist = mco.PropertyList;
mp = plist(1); % meta.property for first property in list

클래스 인스턴스에서 meta.class 객체를 가져오려면 metaclass 함수를 사용하십시오.

mco = metaclass(obj);

속성

모두 확장

속성 이름으로, 문자형 벡터로 반환됩니다. meta.property Name 속성은 클래스로 정의된 해당 속성의 이름에 대응됩니다.

속성에 대한 간단한 설명으로, 문자형 벡터로 반환됩니다. 사용자 정의 클래스인 경우 이 속성의 텍스트는 속성 정의에 대한 코드 주석에서 가져옵니다. 주석이 없으면 속성은 빈 문자형 벡터를 반환합니다. 클래스 속성에 대한 도움말 텍스트를 포함하는 방법에 대한 자세한 내용은 사용자 지정 도움말 텍스트 항목을 참조하십시오.

속성에 대한 자세한 설명으로, 문자형 벡터로 지정됩니다. 사용자 정의 클래스인 경우 이 속성의 텍스트는 속성 정의에 대한 코드 주석에서 가져옵니다. 주석이 없으면 속성은 빈 문자형 벡터를 반환합니다. 클래스 속성에 대한 도움말 텍스트를 포함하는 방법에 대한 자세한 내용은 사용자 지정 도움말 텍스트 항목을 참조하십시오.

속성의 읽기(get) 액세스 수준으로, 다음으로 반환됩니다.

  • public — 무제한 액세스

  • protected – 클래스나 서브클래스에서 액세스

  • private – 클래스 멤버에서만 액세스(서브클래스에서가 아님)

  • 이 속성에 대해 읽기 액세스 권한을 갖는 클래스의 목록으로, 다음과 같은 형식의 meta.class 객체로 지정됩니다.

    • 단일 meta.class 객체.

    • meta.class 객체로 구성된 셀형 배열. 빈 셀형 배열 {}private 액세스와 같습니다.

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

데이터형: enumerated | meta.class

속성의 쓰기(set) 액세스 수준으로, 다음으로 반환됩니다.

  • public — 무제한 액세스

  • protected – 클래스나 서브클래스에서 액세스

  • private – 클래스 멤버에서만 액세스(서브클래스에서가 아님)

  • immutable — 속성은 생성자에 의해서만 설정할 수 있습니다. 자세한 내용은 Mutable and Immutable Properties 항목을 참조하십시오.

  • 이 속성에 대해 쓰기 액세스 권한을 갖는 클래스의 목록으로, 다음과 같은 형식의 meta.class 객체로 지정됩니다.

    • 단일 meta.class 객체.

    • meta.class 객체로 구성된 셀형 배열. 빈 셀형 배열 {}private 액세스와 같습니다.

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

데이터형: enumerated | meta.class

속성값이 다른 값에 종속되는지 여부로, 논리값 true 또는 false로 반환됩니다. false(디폴트 값)인 경우, 속성값이 객체에 저장됩니다. true인 경우, 속성값이 객체에 저장되지 않으며 set 함수나 get 함수는 속성 이름을 사용하여 객체의 요소를 참조하는 방법으로 속성에 접근할 수 없습니다. 종속 속성은 액세스 메서드를 정의해야 합니다. 자세한 내용은 종속 속성에 대한 set 메서드 및 get 메서드 항목을 참조하십시오.

속성값이 상수인지 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 이 속성은 클래스의 모든 인스턴스에서 동일한 값을 가집니다. 자세한 내용은 상수 값으로 클래스 속성 정의하기 항목을 참조하십시오.

속성이 추상인지 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 속성이 구현을 갖지 않으며 클래스는 추상입니다. 자세한 내용은 추상 클래스 및 클래스 멤버 항목을 참조하십시오.

속성이 객체와 함께 저장되는지 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 객체가 MAT 파일에 저장될 때 속성값이 저장되지 않습니다. 객체 저장에 대한 자세한 내용은 객체에 대한 저장 및 불러오기 프로세스 항목을 참조하십시오.

속성이 속성 목록에서 숨겨졌는지 여부로, 논리값 true 또는 false로 반환됩니다. Hidden은 속성이 속성 목록(예: properties에 대한 호출의 결과)에 표시되는지 여부를 지정합니다. 숨겨진 속성은 디폴트 객체 표시에 표시되지 않습니다.

리스너가 속성 get 이벤트를 수신할 수 있는지 여부로, 논리값 true 또는 false로 반환됩니다. true이고 이것이 핸들 클래스 속성인 경우, 속성값이 쿼리될 때 실행되는 리스너를 만들 수 있습니다. MATLAB은 속성값이 쿼리될 때마다 리스너를 호출합니다. 자세한 내용은 속성 설정 및 쿼리 이벤트 항목을 참조하십시오.

리스너가 속성 set 이벤트를 수신할 수 있는지 여부로, 논리값 true 또는 false로 반환됩니다. true이고 이것이 핸들 클래스 속성인 경우, 속성값이 설정될 때 실행되는 리스너를 만들 수 있습니다. MATLAB은 속성값이 수정될 때마다 리스너를 호출합니다. 자세한 내용은 속성 설정 및 쿼리 이벤트 항목을 참조하십시오.

값이 변경되지 않은 경우 속성을 설정할지 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 새 값이 현재 값과 같으면 속성값 설정이 중단됩니다. 속성이 핸들 클래스에 속하는 경우, AbortSettrue로 설정하면 속성의 PreSet 이벤트와 PostSet 이벤트에 대한 트리거가 차단됩니다.

속성을 복사할 수 있는지 여부로, 논리값 true 또는 false로 반환됩니다. false인 경우 객체가 복사될 때 속성값이 복사됩니다(handle 클래스만 해당). 기본적으로 핸들 객체를 복사하면 해당 객체의 구체 속성이 복사됩니다. 자세한 내용은 Exclude Properties from Copy 항목을 참조하십시오.

부분 이름 일치에 대한 우선 순위로, 숫자형 값으로 반환됩니다. matlab.mixin.SetGet의 서브클래스와 함께 사용하여, setget 메서드 인수에서 사용되는 부분 속성 이름 일치의 상대 우선 순위를 정의할 수 있습니다. 디폴트 값은 1입니다. 값이 클수록 할당되는 우선 순위가 낮습니다. 자세한 내용은 부분 속성 이름 일치에 대한 우선 순위 설정하기 항목을 참조하십시오.

속성 get 메서드로, 함수 핸들 또는 빈 값으로 반환됩니다. 이 속성에 대한 get 메서드의 함수 핸들입니다. 클래스 정의에 지정된 get 메서드가 없는 경우 이 값은 비어 있습니다. 자세한 내용은 속성 get 메서드 항목을 참조하십시오.

속성 set 메서드로, 함수 핸들 또는 빈 값으로 반환됩니다. 이 속성에 대한 set 메서드의 함수 핸들입니다. 클래스 정의에 지정된 set 메서드가 없는 경우 이 값은 비어 있습니다. 자세한 내용은 속성 set 메서드 항목을 참조하십시오.

속성이 디폴트 값을 정의하는지 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 속성은 클래스 정의에 디폴트 값을 정의합니다. DefaultValue 속성을 쿼리하기 전에 HasDefault를 테스트하여 MATLAB:class:NoDefaultDefined 오류를 방지하십시오.

데이터형: logical

클래스 정의에 지정된 디폴트 값 추상적인 동적 Dependent 속성은 디폴트 값을 지정할 수 없습니다.

클래스 정의에 디폴트 값이 없는 경우, MATLAB은 DefaultValue 속성을 표시하지 않습니다. DefaultValue 속성을 쿼리하기 전에 HasDefault를 테스트하여 MATLAB:class:NoDefaultDefined 오류를 방지하십시오.

속성에 대해 정의된 유효성 검사로, meta.Validation 객체로 반환됩니다. 이 속성은 이 속성에 의해 정의된 유효성 검사를 설명하는 meta.Validation 객체를 포함합니다. 속성이 유효성 검사를 정의하지 않은 경우, 이 속성은 빈 meta.Validation 객체를 포함합니다.

속성을 정의하는 클래스로, meta.class 객체로 반환됩니다. meta.class 객체는 이 속성을 정의하는 클래스를 나타내며, 이 클래스는 슈퍼클래스일 수 있습니다.

이벤트

이벤트 이름트리거이벤트 데이터이벤트 특성
PreGet속성값이 쿼리되기 직전에 이벤트가 발생함.event.PropertyEvent

NotifyAccess: private

ListenAccess: public

PostGet속성값이 쿼리된 직후에 이벤트가 발생함.event.PropertyEvent

NotifyAccess: private

ListenAccess: public

PreSet속성값이 변경되기 직전에 이벤트가 발생함.event.PropertyEvent

NotifyAccess: private

ListenAccess: public

PostSet속성값이 변경된 직후에 이벤트가 발생함.event.PropertyEvent

NotifyAccess: private

ListenAccess: public

예제

모두 축소

meta.property를 사용하여 IntrospectionExample 클래스의 클래스 속성에 대한 정보를 가져옵니다.

IntrospectionExample 코드

classdef IntrospectionExample
    % IntrospectionExample  Performs basic functions on two numbers
    % This class can return the sum and product of its two properties.
    properties
        % a  First property
        % First of two numeric properties
        a {mustBeNumeric} = 0

        % b  Second property
        % Second of two numeric properties
        b {mustBeNumeric} = 0 
    end
    
    methods
        function sum = addNumbers(obj)
            % addNumbers  Sum the properties
            %   Finds the sum of properties a and b.
            sum = obj.a + obj.b;
        end
        function prod = multNumbers(obj)
            % multNumbers  Multiply the properties
            %   Finds the product of properties a and b.
            prod = obj.a*obj.b;
        end
    end
end

메타클래스 인스턴스 생성 및 검사

IntrospectionExample의 메타클래스 인스턴스를 생성합니다. mcPropertyList에서 첫 번째 속성에 액세스하여 meta.property 객체를 가져옵니다.

mc = ?IntrospectionExample;
mc.PropertyList(1)
ans = 
  property with properties:

                    Name: 'a'
             Description: 'First property'
     DetailedDescription: '  First of two numeric properties'
               GetAccess: 'public'
               SetAccess: 'public'
               Dependent: 0
                Constant: 0
                Abstract: 0
               Transient: 0
                  Hidden: 0
           GetObservable: 0
           SetObservable: 0
                AbortSet: 0
             NonCopyable: 0
    PartialMatchPriority: 1
               GetMethod: []
               SetMethod: []
              HasDefault: 1
            DefaultValue: 0
              Validation: [1x1 meta.Validation]
           DefiningClass: [1x1 meta.class]

클래스가 속성값에 대해 어떤 유효성 검사를 수행하는지 확인합니다.

mc.PropertyList(1).Validation
ans = 
  Validation with properties:

                 Class: [0x0 meta.class]
                  Size: [1x0 meta.ArrayDimension]
    ValidatorFunctions: {@mustBeNumeric}

버전 내역

R2008a에 개발됨

모두 확장