+folder
- это папка пакета MATLAB. Если вы поместите Tata.m
в таком месте, как +folder/Tata.m
, он будет известен MATLAB как класс folder.Tata
. Если вы поместите его в папку типа someOtherFolder/Tata.m
или someOtherFolder/@Tata/Tata.m
, он будет известен MATLAB как Tata
.
Может быть полезно поместить файл classdef
в каталог классов, например @Tata
, чтобы вы могли поместить определение некоторых (или всех) методов в отдельные файлы.
документ содержит более подробную информацию.
РЕДАКТИРОВАТЬ: Чтобы попытаться выяснить каталоги @
: исторически, класс Tata
с методами methodOne
и methodTwo
потребовал бы следующие файлы:
somePlaceOnThePath/@Tata/Tata.m
somePlaceOnThePath/@Tata/methodOne.m
somePlaceOnThePath/@Tata/methodTwo.m
В «новой» объектной системе вы все еще можете использовать макет выше без изменений. С другой стороны, вы можете поместить всю реализацию Tata
в один блок classdef
в:
somePlaceOnThePath/Tata.m
Если у вас есть несколько крупных методов или вы хотите разделить реализацию класса Tata
на несколько файлов, чтобы упростить параллельную разработку, вы можете использовать classdef, например:
%# somePlaceOnThePath/@Tata/Tata.m:
classdef Tata
methods
result = methodTwo(obj, arg)
function methodOne(obj)
disp('hello from methodOne');
end
end
end
А также
%# somePlaceOnThePath/@Tata/methodTwo.m:
function result = methodTwo(obj, arg)
% do stuff with obj and arg
end
Строго говоря, предварительное объявление methodTwo
в classdef
является необязательным, поскольку оно использует спецификаторы доступа по умолчанию. Если вы хотите, чтобы methodTwo
был закрытым методом, вы можете поместить его в блок methods (Access = private)
.