classdef class_name
properties% Все не указанные здесь атрибуты известны,
% имеют значения по умолчанию и относятся ко всем % свойствам этого блока properties.
PropertyName % Нет специального назначения (установка
% идет по умолчанию) начальной величины первого % свойства данного блока properties.
PropertyName = sin(pi/12); % Выражение рассчитывает
% начальную величину второго свойства данного блока
% properties.
end% Конец первого блока свойств.
properties (SetAcess = private, GetAcess = private) % В строке properties: SetAcess – имя атрибута
% установки, private – значение этого атрибута; GetAcess –
% имя атрибута запроса на значения свойств данного (второго)
% блока properties.
Stress % Первое свойство второго блока properties
% (значение – по умолчанию).
Strain % Второе свойство второго блока properties
% (значение – по умолчанию).
end% Конец второго блока свойств.
end% Конец блокаclassdef.
В приведенном примере оба свойства Stress и Strain, не имеющие назначенных величин (по умолчанию – [ ]), могут быть установлены (модифицированы) только объектами и методами того класса (в данном случае class_name), в котором определен данный блок properties, так как атрибут установки (SetAcess) имеет значение private.
Раздел Specifying Property Attributes (Спецификация атрибутов свойств) дает описание атрибутов свойств.
PropertyAccessMethods (Методы доступа к свойствам)
Вы можете определить метод доступа на установку, который, если он вызывается, задает значение свойства, или метод доступа на запрос, который при вызове запрашивает значение свойства. Эти методы можно определить в отдельном блоке methods, не содержащем атрибутов, например:
мethods% Начало блока методов доступа класса.
function value = get.PropertyName(object)
% Кодовое слово function – начало функции
% get.PropertyName, определяющей метод доступа объекта
% object при запросе значения свойства PropertyName;
% запрашиваемая величина возвращается в точку вызова в
% виде переменной value.
... % Рабочие операторы метода get.PropertyName.
end% Конец функции-метода get.PropertyName.
function obj = set.PropertyName(obj,value) % Функция set.PropertyName определяет метод
% доступа объекта obj на установку значения value свойства
% PropertyName; в точку вызова возвращается объект obj
% с новыми установленными параметрами.
... % Рабочие операторы метода set.PropertyName.
end% Конец функции-метода set.PropertyName.
end% Конец блока методов.
Более полная информация о методах доступа содержится в разделе Property Access Methods (Методы доступа к свойствам – см. Controlling Property Access в разделе Properties — Storing Class Data).
О свойствах смотрите в разделе Defining Properties (Определение свойств).
SpecifyingMethods (Спецификация методов)
Определяйте методы как обычные MATLAB-функции в блоках methods classdef-модуля. Главный метод (конструктор-метод) имеет то же самое имя, что и класс, и возвращает созданный объект. Назначение величин свойствам этого объекта может быть сделано в этом же конструктор-методе. Все функции методов завершаются ключевым словом end:
classdef class_name
methods
function obj = class_name(arg1,arg2,...) % Этот
% метод - конструктор объекта obj, использующий
% входные аргументы arg1,arg2,...:
obj.Prop1 = arg1; % Задание величины arg1
% свойству Prop1 созданного объекта obj.
... % Остальной код конструктор-метода.
end
function normal_method(obj,arg2,...)
% normal_method - обычный (не статический) метод
% класса, используемый объектом obj для обработки
% аргументов arg2,... .
... % Строки исполнительного кода метода.
end
end% Конец первого блока методов.
methods (Static = true) % Второй блок методов - с
% атрибутом Static, имеющим значение true (да,
% истина).
function static_method(arg1,...) % Статический
% метод – определен только для класса (не для его
% конкретных представителей), поэтому не требует в списке
% входных аргументов имя объекта - obj.
... % Строки исполнительного кода метода.
end
end% Конец последнего блока методов.
end% Конец блока classdef.
Аргумент Static в последнем блоке описан в подразделе Static Methods (Статические методы) раздела Methods — Defining Class Operations (Методы – определение операций класса).
Methods In Separate Files (Методы в выделенных файлах)
Для задания метода, изолированного в отдельном M-файле @-директории (символы @ и @ эквивалентны и определяются шрифтом), определите функцию-метод в этом файле, но не используйте блок methods в нем. Назовите M-файл такого метода именем этой функции, как обычно.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.