【发布时间】:2019-08-11 03:17:22
【问题描述】:
类 A 中有依赖属性,基于构造函数中的参数我想隐藏一些属性,这样用户将无法设置/获取这些属性。
classdef A
properties (Dependent = true)
prop1
prop2
end
methods
function value = get.prop1(obj)
...
end
function value = get.prop2(obj)
...
end
end
methods(Access = public)
function obj = A(arg1)
if arg1 == 1
% make prop1 Hidden for the constructed object
end
end
end
end
这里是示例用法:
a1 = A(2);
a1.prop1; % ok
a2 = A(1);
a2.prop1; % problem, user will not know about existence prop1
【问题讨论】:
-
你是从哪里得到这个想法的?我从未见过一种 OOP 语言可以让您动态更改属性属性(除非您考虑反射,我认为这不是 MATLAB 类的问题)。正如 NewEyes 所说,我会选择 2 个不同的课程。
-
@Dev-iL in Smalltalk,一种根 OO 语言,一切都是动态定义的,类和方法
-
@Dev-iL 我知道 OOP。当然,我可以通过课程来解决。但我试图找到一个非 OO 解决方案。此外,MATLAB 与其他 OO 语言不同。根据一些观点,MATLAB 是一种脚本语言。所以我想使用 MATLAB 的脚本端。
-
在 MATLAB 中,您可以动态创建属性并为其分配属性,nl.mathworks.com/help/matlab/matlab_oop/…。我正在寻找的是非动态属性是否可能相同?
标签: matlab properties attributes private-members