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

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

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

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

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

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

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

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

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

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

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

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

Класс

Описание

Abstract

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

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

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

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

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

Доступ

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

  • meta. объект класса

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

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

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

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

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

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

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

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

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

Скрытый

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

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

Sealed

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

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

Static

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

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

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

Была ли эта тема полезной?