Для нестатических методов Matlab предоставляет вызывающий класс в качестве первого аргумента. По (личному соглашению) я называю этот аргумент self
, который затем эмулирует синтаксис самоссылки. e.g.:
methods (Static = false)
function output = someMethod(self, arg1, arg2, arg3)
self.x %Now refers to the (potentially private) field `x`
self.someOtherFunction(arg1, arg2) %Calls another method, which may be static or not.
end
end
В отличие от
methods (Static = true)
function output = someStaticMethod(arg1, arg2, arg3)
%There is no input appropriate to the name "self"
someOtherFunction(arg1, arg2) %Calls another method, which must be static
end
end
Для данного объекта someObject
оба эти метода могут быть вызваны с помощью:
someObject.someMethod(arg1, arg2, arg3)
someObject.someStaticMethod(arg1, arg2, arg3)
Самостоятельная ссылка, обсуждаемая в связанном вопросе, относится к именам пакетов, которые являются совершенно другим животным.