Change class property inside of class function/method
조회 수: 36 (최근 30일)
이전 댓글 표시
I would like assign a new value to a variable created in my class, but the below approach does not update the variable. Is there a different approach?
classdef class_1
properties
var_1
end
function consistency_check_trades(obj)
obj. var_1 = 2
end
end
댓글 수: 0
채택된 답변
Steven Lord
2022년 2월 7일
Your class does not inherit from the handle class so it has value class behavior. See this documentation page for a discussion of the differences between handle and values classes,
댓글 수: 3
Steven Lord
2022년 2월 7일
That's one way of solving the problem, yes. But being a handle class also comes with some other behaviors. If your class_1 objects aren't tied to something where it makes sense for multiple objects to refer to the same thing (like a figure window on screen):
f1 = figure; % f1 is a handle
f2 = f1; % f2 refers to the same figure as f1
f1.Color
f2.Color = 'r'; % Not changing f1's Color property
f1.Color % but the figure to which it refers changed so its property changed
Consider if leaving it as a value class (if that makes more sense) and returning the modified object from your method.
추가 답변 (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!