Main Content

meta.method 클래스

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

MATLAB 클래스 메서드 설명

설명

meta.method 클래스는 MATLAB® 클래스에 대한 메서드 정보를 제공합니다. meta.method 클래스의 속성은 클래스 정의에 구문으로 지정된 메서드 특성 및 기타 정보에 대응됩니다. 모든 속성은 읽기 전용입니다.

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

클래스 특성

Abstract
true
ConstructOnLoad
true

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

생성

meta.method 객체는 직접 인스턴스화할 수 없습니다. meta.method 객체는 meta.class 객체의 MethodList 속성에서 가져와야 합니다. MethodList에는 meta.method 객체로 구성된 배열이, 각 클래스 메서드별로 하나씩 들어 있습니다.

예를 들어, 아래 코드에서 ClassName을 메서드를 쿼리하려는 클래스의 이름으로 바꿉니다.

mco = ?ClassName;
mlist = mco.MethodList;
mlist(1).Name; % name of first method in the list

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

mco = metaclass(obj);

속성

모두 확장

메서드 이름으로, 문자형 벡터로 반환됩니다.

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

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

메서드의 액세스 수준으로, 다음으로 지정됩니다.

  • public — 무제한 액세스

  • protected — 클래스나 서브클래스의 메서드에서 액세스

  • private — 클래스 메서드에서만(서브클래스에서가 아님) 액세스

  • 이 메서드에 액세스할 수 있는 클래스의 목록으로, 다음과 같은 형식의 meta.class 객체로 지정됩니다.

    • 단일 meta.class 객체.

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

데이터형: enumerated | meta.class

메서드가 정적인지 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 메서드는 클래스의 객체에 종속되지 않고 입력값으로 객체가 필요하지 않습니다.

자세한 내용은 정적 메서드 항목을 참조하십시오.

메서드가 추상인지 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 메서드는 구현을 갖지 않습니다. 하지만 메서드는 인수를 포함할 수 있는 구문 라인을 갖습니다. 서브클래스가 추상 메서드 시그니처에 따라 메서드를 구현합니다.

메서드 재정의 가능 여부로, 논리값 true 또는 false로 반환됩니다. true인 경우, 메서드를 서브클래스에서 다시 정의할 수 없습니다. 서브클래스에서 같은 이름을 가진 메서드를 정의하려고 시도하면 오류가 발생합니다.

메서드가 숨겨졌는지 여부로, 논리값 true 또는 false로 반환됩니다. false인 경우, methods 명령 또는 methodsview 명령을 사용하여 표시되는 메서드의 목록에 메서드 이름이 표시됩니다. true로 설정된 경우, 메서드 이름이 이 목록에 포함되지 않으며 명령 창에 객체가 표시될 때에도 포함되지 않습니다.

함수 시그니처에 사용되는 입력 인수의 이름으로, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 반환됩니다.

함수 시그니처에 사용되는 출력 인수의 이름으로, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 반환됩니다.

메서드를 정의하는 클래스로, 정의 클래스를 나타내는 meta.class 객체로 반환됩니다. 정의하는 클래스는 항상 meta.method 객체의 관점에서 가장 구체적인 클래스입니다. 따라서 상속된 메서드를 서브클래스가 재정의한 경우, 서브클래스 meta.method 객체의 정의하는 클래스는 해당 서브클래스입니다. 마찬가지로, 슈퍼클래스 meta.method 객체의 정의하는 클래스는 해당 슈퍼클래스입니다.

예제

모두 축소

meta.method를 사용하여 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의 메타클래스 인스턴스를 생성합니다. mcMethodList 속성에서 첫 번째 메서드에 액세스하여 meta.method 객체를 가져옵니다.

mc = ?IntrospectionExample;
mc.MethodList(1)
ans = 
  method with properties:

                   Name: 'multNumbers'
            Description: 'Multiply the properties'
    DetailedDescription: '    Finds the product of properties a and b.'
                 Access: 'public'
                 Static: 0
               Abstract: 0
                 Sealed: 0
     ExplicitConversion: 0
                 Hidden: 0
             InputNames: {'obj'}
            OutputNames: {'prod'}
          DefiningClass: [1x1 meta.class]

버전 내역

R2008a에 개발됨

모두 확장