Access to class properties from class methods
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Metin Akyol
am 2 Feb. 2022
Bearbeitet: Metin Akyol
am 3 Feb. 2022
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
0 Kommentare
Akzeptierte Antwort
Benjamin Thompson
am 2 Feb. 2022
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 Kommentare
Steven Lord
am 3 Feb. 2022
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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Construct and Work with Object Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!