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