MATLAB:使 child class 实例的属性只能从 parent class 修改

MATLAB: Make properties of a child class instance only modifiable from the parent class

我正在使用 MATLAB object 面向编程编写一些代码,试图构建一个系统模拟器。

我正在尝试创建一个代表整个系统的 class。系统依赖于 2 sub-modules:发送器和接收器。

我还使用 classes 实现了这 2 个模块,因为它们在未来的其他场景中可能会有用。

我的问题是我希望发送器和接收器的某些属性只有在作为独立实例创建时才具有 (SetAccess = public),而不是来自系统 class .这是因为当作为完整系统的一部分时,不应由用户单独对单独的模块进行更改。

我试图将 (SetAccess = protected) 放入我系统中的发射器和接收器的实例 class 但这并不妨碍我从命令窗口更改它们的参数,例如: system.transmitter.memory = value.

有没有什么方法可以让我在不创建发射器和接收器的不同定义的情况下实现这种行为classes?

我对 OOP 很陌生,如果我想要实现的行为有误,请告诉我。

编辑:我只是输入 (SetAccess = protected) 因为我希望 child-class 的属性可读但不可写

您需要将 SetAccess 和 GetAccess 都设置为受保护。操作

system.transmitter.memory = value;

首先获取您拥有 public GetAccess 的 属性 变送器,然后在具有 public 内存访问权限的变送器上设置内存 属性 属性.

仅在系统中设置 SetAccess 仅停止 public 变送器 属性 的设置。所以,

system.transmitter = Transmitter;

会抛出错误。