필터 지우기
필터 지우기

Access to class properties from class methods

조회 수: 6 (최근 30일)
Metin Akyol
Metin Akyol 2022년 2월 2일
편집: Metin Akyol 2022년 2월 3일
I would like to access my classes properties from with the classes methods (both read and write access) but I am getting an 'unrecognized variable' error when doing this:
classdef class1
properties (Access = public)
var1, var2, var3
end
methods
function [returns, asset_names] = compute_holdings()
var1_test = var1 %% this seems to be incorrect
end
end
end

채택된 답변

Benjamin Thompson
Benjamin Thompson 2022년 2월 2일
Use the argument obj for class methods that need to act on properties or methods of an instance of the class.
function [returns, asset_names] = compute_holdings(obj)
var1_test = obj.var1;
end
  댓글 수: 3
Steven Lord
Steven Lord 2022년 2월 3일
If 'this' is implicitly passed into the method then this approach is not equivalent. For a non-Static method at least one of the inputs to the method must be an instance of the object, but you must accept that input explicitly. Note that Benjamin added an input argument to your method signature. If your method accepts multiple inputs, you should also be careful not to assume that the first input is always the object. If X is an instance of the mystuff class with a method doStuff, either of these calls the doStuff method in the mystuff class:
y = doStuff(X, 1)
z = doStuff(1, X) % Calling mystuff methods on the first input may error
Metin Akyol
Metin Akyol 2022년 2월 3일
편집: Metin Akyol 2022년 2월 3일
Very helpful, thank you for clarifying 'this' (no pun intended) Steven. That is very good to know!!! (alright, I'll admit it, the pun was intended ;-)).

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by