Атрибуты метода

Цель атрибутов метода

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

Определение атрибутов метода

Присвойте атрибуты метода на той же строке как ключевое слово methods:

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

Для получения дополнительной информации о синтаксисе атрибута смотрите Спецификацию атрибута.

Таблица атрибутов метода

Атрибуты позволяют вам изменить поведение методов. Все методы поддерживают атрибуты, перечисленные в следующей таблице.

Значения атрибута применяются ко всем методам, заданным в блоке methods...end кода, который задает значения не по умолчанию.

Атрибуты метода

Название атрибута

Класс

Описание

Abstract

Значение по умолчанию logical = false

Если true, метод не имеет никакой реализации. Метод имеет строку синтаксиса, которая может включать аргументы, который разделяет использование на подклассы при реализации метода:

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

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

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

Access

  • перечисление, значение по умолчанию = public

  • Объект meta.class

  • массив ячеек объектов meta.class

Определяет, какой код может вызвать этот метод:

  • общедоступно — свободный доступ

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

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

  • Перечислите классы, которые имеют доступ к этому методу. Задайте классы как объекты meta.class в форме:

    • Один объект meta.class

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

    См. Доступ для членов класса

Hidden

Значение по умолчанию logical = false

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

Sealed

Значение по умолчанию logical = false

Если true, метод не может быть переопределен в подклассе. Попытка задать метод с тем же именем в подклассе вызывает ошибку.

Static

Значение по умолчанию logical = false

Задайте как true, чтобы задать метод, который не зависит от объекта класса и не требует объектного аргумента. Используйте имя класса, чтобы вызвать метод: classname.methodname или экземпляр класса: obj.methodname

Статические методы предоставляют больше информации.

Атрибуты среды

Классы, которые используют определенные базовые классы среды, имеют специфичные для среды атрибуты. См. документацию для определенного базового класса, который вы используете для получения информации об этих атрибутах.