exponenta event banner

класс meta.method

Пакет: мета
Суперклассы: meta.MetaData

Сведения о методе класса

Описание

meta.method содержит информацию о методах классов MATLAB ®. Свойства meta.method класс соответствует атрибутам метода и другой информации, которая синтаксически указана в определении класса. Все свойства доступны только для чтения.

meta.method класс является handle класс.

Атрибуты класса

Abstract
true
ConstructOnLoad
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Создание

Невозможно создать экземпляр meta.method непосредственно объект. Получить meta.method объект из meta.class 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);

Свойства

развернуть все

Имя метода возвращено в виде символьного вектора.

Типы данных: char

В настоящее время не используется для сбора информации о классе из комментариев.

Типы данных: char | string

В настоящее время не используется для сбора информации о классе из комментариев.

Типы данных: char | string

Access определяет, какой код имеет разрешение на вызов этого метода.

  • public - неограниченный доступ

  • protected - доступ из методов в классе или подклассах

  • private - доступ только по методам классов (не из подклассов)

  • Список классов, имеющих доступ к этому методу, указанный как meta.class объекты в форме:

    • Сингл meta.class объект

    • Массив ячеек meta.class объекты. Пустой массив ячеек, {}, совпадает с private доступ.

Пример: method (Access = private)

Типы данных: enumerated

Статический метод, возвращенный как логический true или false. Когда true, метод не зависит от объекта класса и не требует объекта в качестве входных данных. Вызовите статические методы, используя вместо объекта имя класса:

classname.methodname()

Или с экземпляром класса, как любой метод:

o.methodname()

См. раздел Статические методы

Пример: method (Static)

Типы данных: logical

Абстрактный метод, возвращенный как логический true или false. Если true, метод не имеет реализации, но метод имеет синтаксическую строку, которая может включать аргументы. Подклассы реализуют метод, следующий за сигнатурой абстрактного метода.

  • Метод не содержит function или end ключевые слова, только синтаксис функции (например, [a,b] = myMethod(x,y))

  • Подклассы не требуются для определения одинакового числа входных и выходных аргументов. Однако синтаксис указывает, какие подклассы предполагается реализовать.

  • Метод может иметь комментарии после строки синтаксиса.

Пример: method (Abstract)

Типы данных: logical

Может ли этот метод быть переопределен, возвращен как логический true или false. Если true, метод не может быть переопределен в подклассе. Попытка определить метод с тем же именем в подклассе приводит к ошибке.

Пример: method (Sealed)

Типы данных: logical

Скрыт ли этот метод, возвращенный как логический true или false. Когда false, имя метода отображается в списке методов, отображаемых с помощью methods или methodsview команды. Если установлено значение trueимя метода не включается в эти списки или при отображении объекта в окне команд.

Типы данных: logical

Имена входных аргументов, используемых в сигнатуре функции, возвращаемых в виде символьного вектора или массива ячеек символьных векторов.

Типы данных: char | cell

Имена выходных аргументов, используемых в сигнатуре функции, возвращаемых в виде символьного вектора или массива ячеек символьных векторов.

Типы данных: char | cell

Класс, определяющий этот метод, возвращаемый как meta.class объект, представляющий определяющий класс. Определяющий класс всегда является наиболее определенным классом с точки зрения meta.method объект. Поэтому, если подкласс переопределяет унаследованный метод, то определяющий класс для подкласса meta.method объект является подклассом. Аналогично, определяющий класс для суперкласса meta.method объект является суперклассом.

Типы данных: meta.class

Примеры

свернуть все

Использовать meta.method данные для получения информации о способе копирования matlab.mixin.Copyable класс.

mc =?matlab.mixin.Copyable;
copyInfo = findobj(mc.MethodList,"Name","copy")
copyInfo = 

  method with properties:

                   Name: 'copy'
            Description: ''
    DetailedDescription: ''
                 Access: 'public'
                 Static: 0
               Abstract: 0
                 Sealed: 1
                 Hidden: 0
             InputNames: {'rhs1'}
            OutputNames: {'lhs1'}
          DefiningClass: [1×1 meta.class]
Представлен в R2008a