Методы являются функциями, которые реализуют операции, выполняемые над объектами класса. Методы, наряду с другими членами класса, поддерживают концепцию инкапсуляции - образцы классов содержат данные в свойствах, и методы класса работают с этими данными. Этот проект позволяет скрыть внутренние рабочие процессы классов от кода вне класса, и тем самым позволяет изменять реализацию класса, не затрагивая код, который является внешним по отношению к классу.
Методы имеют доступ к частным представителям своего класса, включая другие методы и свойства. Эта инкапсуляция позволяет вам скрыть данные и создать специальные интерфейсы, которые должны использоваться для доступа к данным, хранящимся в объектах.
Пример для начала записи классов см. в разделе Создание простого класса
Для примера кода и синтаксиса смотрите Define Class Methods and Functions
Для обсуждения того, как создать классы, которые изменяют стандартный MATLAB® поведение, см. «Методы, которые изменяют поведение по умолчанию».
Для получения информации об использовании директоров и пакетов @ и путь для организации файлов классов, смотрите Файлы классов и Папки
Синтаксис, используемый при определении классов в нескольких файлах, см. в разделе Методы в отдельных файлах
Существуют специализированные виды методов, которые выполняют определенные функции или ведут себя особыми способами:
Обычные методы являются функциями, которые действуют на один или несколько объектов и возвращают какой-то новый объект или какое-то вычисленное значение. Эти методы похожи на обычные функции MATLAB, которые не могут изменять входные параметры. Обычные методы позволяют классам реализовывать арифметические операторы и вычислительные функции. Эти методы требуют объекта класса, над которым нужно работать. См. «Обычные методы».
Методы конструктора являются специализированными методами, которые создают объекты класса. Метод конструктора должен иметь то же имя что и класс и обычно инициализирует значения свойств с данными, полученными из входных параметров. Метод конструктора классов должен объявить по крайней мере один выходной аргумент, который является строящимся объектом. Первый выход - это всегда строящийся объект. См. Методы конструктора классов
Методы деструктора вызываются автоматически, когда объект уничтожен, например, если вы вызываете delete(object)
или больше нет никаких ссылок на объект. См. «Разрушение классов Handle»
Методы доступа к свойствам позволяют классу задавать код для выполнения всякий раз, когда запрашивается или устанавливается значение свойства. См. Методы доступа к свойствам
Статические методы являются функциями, которые связаны с классом, но не обязательно работают с объектами класса. Эти методы не требуют ссылки на образец класса во время вызова метода, но обычно выполняют операции специфичным для класса способом. См. Статические методы
Методы преобразования являются перегруженными методами конструктора из других классов, которые позволяют вашему классу преобразовывать собственные объекты в класс перегруженного конструктора. Для примера, если ваш класс реализует double
метод, затем этот метод вызывается вместо конструктора двойного класса для преобразования объекта класса в двойной объект MATLAB. Для получения дополнительной информации см. раздел «Преобразователи объектов».
Абстрактные методы определяют класс, который не может быть создан сам по себе, но служит способом определения общего интерфейса, используемого многочисленными подклассами. Классы, которые содержат абстрактные методы, часто упоминаются как интерфейсы. Смотрите абстрактные классы и члены класса для получения дополнительной информации и примеров.
Имя функции, которая реализует метод, может содержать точки (для примера set.PropertyName
) только в том случае, если метод является одним из следующих:
Набор свойств/метод получения доступа (см. «Методы доступа к свойствам»)
Метод преобразования, который преобразуется в класс, сертифицированный по пакету, который требует использования имени пакета (см. «Пакеты создают пространства имен»)
Вы не можете задать методы доступа к свойствам или преобразования как локальные функции, вложенные функции или отдельно в их собственных файлах. Конструкторы классов и функции со спецификацией пакетов должны использовать неквалифицированное имя в определении функции; не включать имя пакета в оператор определения функции.