Il pezzo +folder
è una cartella del pacchetto MATLAB. Se si inserisce Tata.m
in una posizione come +folder/Tata.m
, sarà noto a MATLAB come classe folder.Tata
. Se lo si inserisce in una cartella come someOtherFolder/Tata.m
o someOtherFolder/@Tata/Tata.m
, sarà noto a MATLAB come Tata
.
Può essere utile inserire un file classdef
in una directory di classe come @Tata
per consentire di inserire la definizione di alcuni (o tutti) metodi in file separati.
Il doc ha ulteriori dettagli.
EDIT: Per tentare di chiarire i @
directory: storicamente, una classe Tata
con i metodi methodOne
e methodTwo
richiederebbe i seguenti file:
somePlaceOnThePath/@Tata/Tata.m
somePlaceOnThePath/@Tata/methodOne.m
somePlaceOnThePath/@Tata/methodTwo.m
Nel "nuovo" sistema oggetto, è comunque possibile utilizzare la layout sopra senza modifiche. All'altro estremo, è possibile inserire l'intera realizzazione di Tata
in un unico classdef
blocco:
somePlaceOnThePath/Tata.m
Se si dispone di alcuni grandi metodi, o vuole dividere l'attuazione della classe Tata
in più file per rendere sviluppo parallelo più semplice, si può prendere usare un classdef come questo:
%# somePlaceOnThePath/@Tata/Tata.m:
classdef Tata
methods
result = methodTwo(obj, arg)
function methodOne(obj)
disp('hello from methodOne');
end
end
end
E anche
%# somePlaceOnThePath/@Tata/methodTwo.m:
function result = methodTwo(obj, arg)
% do stuff with obj and arg
end
In senso stretto, la dichiarazione anticipata di methodTwo
nello classdef
è facoltativa poiché utilizza gli specificatori di accesso predefiniti. Se si desidera che methodTwo
sia un metodo privato, è possibile inserirlo in un blocco methods (Access = private)
.
ok, grazie Edric, ora capisco la cartella + ma non la cartella @ – lola
Il collegamento alla documentazione è interrotto e non riesco a capire cosa dovrebbe essere. Sto anche ancora cercando di capire il significato e il significato di una "cartella di pacchetti MATLAB". – patrickvacek
Hm, non sono sicuro al 100% ora, forse era destinato a essere http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html o http: // www .mathworks.com/help/Matlab/matlab_oop/L'organizzazione-classi-in-folders.html – Edric