在MATLAB中将对象传递给其他对象
我从MATLAB中的面向对象编程开始,对如何最好地将对象传递给其他对象感到困惑,因为MATLAB没有静态类型定义 我有三个不同的类,它们都包含一些常量。现在,我想在第三个类的方法中使用两个类中定义的常量——我应该如何做到这一点?这些类不在层次结构中 <> >,我在找一些类似于C++的东西。 问题如下所示。如何将“*Object1”和“*Object2”引用写入access const1和const2在MATLAB中将对象传递给其他对象,matlab,object,constants,Matlab,Object,Constants,我从MATLAB中的面向对象编程开始,对如何最好地将对象传递给其他对象感到困惑,因为MATLAB没有静态类型定义 我有三个不同的类,它们都包含一些常量。现在,我想在第三个类的方法中使用两个类中定义的常量——我应该如何做到这一点?这些类不在层次结构中 >,我在找一些类似于C++的东西。 问题如下所示。如何将“*Object1”和“*Object2”引用写入access const1和const2 classdef Object1 properties (Constant)
classdef Object1
properties (Constant)
const1 = 100;
end
methods
function Obj1 = Object1()
end
end
classdef Object2
properties (Constant)
const2 = 200;
end
methods
function Obj2 = Object2()
end
end
classdef Object3
properties (Immutable)
property3
end
methods
function Obj3 = Object3()
Obj3.property3 = *Object1.const1 + *Object2.const2;
end
end
只要去掉星号,我想你就有你需要的了 代码中还有一些其他语法错误(用
SetAccess=Immutable
替换Immutable
,并将缺少的end
s添加到classdef
s),但一旦我做了这些更改,我会得到:
a = Object3
a =
Object3
Properties:
property3: 300
Methods
一般来说,要引用另一个类的
常量
属性,只需在属性前面加上类名(如果类在包中,可能还有包名)。我想,如果您提供一个示例,它会更清楚。另外,如果你不需要,不要参与matlab中的OOP,坚持他们更实用的传统模式。谢谢你的提示。我更愿意使用OOP,因为目前我的函数实现中有10多个全局变量,而不是将它们定义为全局变量,我应该在许多函数调用中包含这些常量,这似乎有点令人畏惧,也不清楚。我想最好在函数实现中使用结构,但我仍然认为,与函数实现相比,OOP的一个优势是恒定访问限制。但让我们看看,当我运行OOP时,它将如何处理对象之间传递的常量。