The class has no property or method named 'setCurncy'
조회 수: 7 (최근 30일)
이전 댓글 표시
Hi. I have the following class. when I try to create an instance of that class
c=cBasket('aaa')
I get the following error message The class cBasket has no property or method named 'setCurncy'.
why does matlab not see the method setCurncy? Thanks, Chris
classdef cBasket
properties
curncy
end
methods
%%constructor
function obj = cBasket(symbol,date)
assert(nargin>0,'no symbol given');
if ~exist('date','var');
date=datestr(now,'yyyy-mm-dd');
end
obj.name = symbol;
obj.timestamp=date;
obj.curncy = cBasket.setCurncy(symbol);
end
%%methods getCurncy
function obj = setCurncy(symbol)
obj = 'xxx';
end % getCurncy
end
end
댓글 수: 2
답변 (2개)
Honglei Chen
2012년 6월 7일
It is not a static method, so I think you should use
obj.curncy = obj.setCurncy(symbol);
댓글 수: 2
Honglei Chen
2012년 6월 8일
I'm not sure what you are trying to do, but I think you mean
function obj = setCurncy(obj,symbol)
obj.name = symbol;
end
Tim Szostakowski
2018년 7월 17일
You can make your function Static, if you write "methods(Static)" in your methods definition:
classdef cBasket
properties
curncy
end
methods(Static) %%<<<<<<<<< HERE!!
%%constructor
function obj = cBasket(symbol,date)
assert(nargin>0,'no symbol given');
if ~exist('date','var');
date=datestr(now,'yyyy-mm-dd');
end
obj.name = symbol;
obj.timestamp=date;
obj.curncy = cBasket.setCurncy(symbol);
end
%%methods getCurncy
function obj = setCurncy(symbol)
obj = 'xxx';
end % getCurncy
end
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Construct and Work with Object Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!