La pieza +folder
es una carpeta de paquete MATLAB. Si coloca Tata.m
en una ubicación como +folder/Tata.m
, MATLAB conocerá la clase folder.Tata
. Si lo coloca en una carpeta como someOtherFolder/Tata.m
o someOtherFolder/@Tata/Tata.m
, MATLAB lo conocerá como Tata
.
Puede ser útil colocar un archivo classdef
en un directorio de clase como @Tata
para permitirle poner la definición de algunos (o todos) los métodos en archivos separados.
El doc tiene más detalles.
EDIT: Para tratar de aclarar las @
directorios: históricamente, una clase Tata
con métodos methodOne
y methodTwo
requeriría los siguientes archivos:
somePlaceOnThePath/@Tata/Tata.m
somePlaceOnThePath/@Tata/methodOne.m
somePlaceOnThePath/@Tata/methodTwo.m
En el "nuevo" sistema de objetos, puede seguir utilizando el diseño anterior sin modificación. En el otro extremo, se puede colocar toda la implementación de Tata
en un solo classdef
bloque en:
somePlaceOnThePath/Tata.m
Si usted tiene algunos métodos grandes, o si desea dividir la implementación de la clase Tata
en varios archivos para hacer desarrollo paralelo simple, se puede tomar utilizar un classdef así:
%# somePlaceOnThePath/@Tata/Tata.m:
classdef Tata
methods
result = methodTwo(obj, arg)
function methodOne(obj)
disp('hello from methodOne');
end
end
end
Y también
%# somePlaceOnThePath/@Tata/methodTwo.m:
function result = methodTwo(obj, arg)
% do stuff with obj and arg
end
Estrictamente hablando, la declaración anticipada de methodTwo
en el classdef
es opcional porque está usando los especificadores de acceso predeterminados. Si desea que methodTwo
sea un método privado, puede colocarlo en un bloque methods (Access = private)
.
bien, gracias Edric, ahora, entiendo la carpeta + pero no la @carpeta – lola
El enlace de la documentación está roto y no puedo entender qué se suponía que era. También sigo luchando por comprender el significado y la importancia de una "carpeta de paquete MATLAB". – patrickvacek
Hm, tampoco estoy 100% seguro ahora, tal vez estaba destinado a ser http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html o http: // www .mathworks.com/help/matlab/matlab_oop/organizing-classes-in-folders.html – Edric