Đoạn +folder
là thư mục gói MATLAB. Nếu bạn đặt Tata.m
ở một vị trí như +folder/Tata.m
, nó sẽ được biết đến với MATLAB là lớp folder.Tata
. Nếu bạn đặt nó trong một thư mục như someOtherFolder/Tata.m
hoặc someOtherFolder/@Tata/Tata.m
, nó sẽ được biết đến với MATLAB là Tata
.
Có thể hữu ích khi đặt tệp classdef
trong thư mục lớp như @Tata
để cho phép bạn đặt định nghĩa của một số (hoặc tất cả) phương pháp trong các tệp riêng biệt.
doc có thêm chi tiết.
EDIT: Để cố gắng làm rõ @
thư mục: lịch sử, một lớp Tata
với các phương pháp methodOne
và methodTwo
sẽ yêu cầu các tập tin sau đây:
somePlaceOnThePath/@Tata/Tata.m
somePlaceOnThePath/@Tata/methodOne.m
somePlaceOnThePath/@Tata/methodTwo.m
Trong hệ thống đối tượng "mới", bạn vẫn có thể sử dụng bố trí ở trên mà không sửa đổi. Ở thái cực khác, bạn có thể đặt toàn bộ thi hành Tata
trong một classdef
khối duy nhất trong:
somePlaceOnThePath/Tata.m
Nếu bạn có một số phương pháp lớn, hoặc muốn chia tay thực hiện của lớp Tata
thành nhiều file để thực hiện phát triển song song đơn giản hơn, bạn có thể tận dụng một classdef như thế này:
%# somePlaceOnThePath/@Tata/Tata.m:
classdef Tata
methods
result = methodTwo(obj, arg)
function methodOne(obj)
disp('hello from methodOne');
end
end
end
Và cũng
%# somePlaceOnThePath/@Tata/methodTwo.m:
function result = methodTwo(obj, arg)
% do stuff with obj and arg
end
Nói đúng, tuyên bố trước là methodTwo
trong classdef
là tùy chọn vì nó sử dụng các thông số truy cập mặc định. Nếu bạn muốn có methodTwo
là một phương pháp riêng tư, bạn có thể đặt nó trong khối methods (Access = private)
.
ok, cảm ơn Edric, bây giờ, tôi hiểu được thư mục + nhưng không phải @folder – lola
Liên kết tài liệu bị hỏng và tôi không thể đoán được điều nó được cho là gì. Tôi vẫn đang đấu tranh để hiểu ý nghĩa và ý nghĩa của một "thư mục gói MATLAB". – patrickvacek
Hm, bây giờ tôi không chắc chắn 100%, có lẽ là http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html hoặc http: // www .mathworks.com/help/matlab/matlab_oop/organization-classes-in-folders.html – Edric