在MATLAB中将对象传递给其他对象

时间:2013-01-18 15:14:48

标签: matlab object constants

我开始在MATLAB中使用面向对象编程,我对如何最好地将对象传递给其他对象感到困惑,因为MATLAB没有静态类型定义。

我有三个不同的类,所有类都包含一些常量。现在,我想使用第三类方法中两个类中定义的常量 - 我该怎么做?这些类没有层次结构。

所以,我正在寻找像C ++中的#include这样的东西。

下面说明的问题。如何编写“* Object1”和“* Object2”引用来访问const1和const2?

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

1 个答案:

答案 0 :(得分:2)

只需删除星号,我认为你有你需要的东西。

您的代码中还有其他一些语法错误(将Immutable替换为SetAccess = immutable,并将end添加到classdef s,但是一旦我做了那些改变,我得到了:

a = Object3
a = 
  Object3

  Properties:
    property3: 300
  Methods

通常,要从另一个类引用Constant属性,只需在属性前加上类名(如果类在包中,则可能包名称)。