类句柄。 Matlab的

时间:2015-11-27 18:08:33

标签: matlab matlab-class

我有两个类似的课程:

classdef class1 < handle

    properties (Access = public)
        b
    end

    properties (Access = private)
        a
    end

    methods (Access = public)
        function this = class1()
            this.a = 1;
            this.b = 1;
        end

        function test(this)
            'Inside class'
            this.a
            this.b
            this.a = 2;
            this.b = 2;
        end
    end

end

第二个:

classdef class2

    properties (Access = public)
        b
    end

    properties (Access = private)
        a
    end

    methods (Access = public)
        function this = class2()
            this.a = 1;
            this.b = 1;
        end

        function test(this)
            'Inside class'
            this.a
            this.b
            this.a = 2;
            this.b = 2;
        end
    end

end

有一次我从句柄继承。另一个我做不到的。在我创建这样的脚本之后:

solver1 = class1();
solver1.b
solver1
solver1.test()
solver1.b
solver1
solver1.test()



solver2 = class2();
solver2.b
solver2
solver2.test()
solver2.b
solver2
solver2.test()

如果我一步一步地调试我的程序,我会看到 a b 避难所&#39;在solver2.test()之后在第二课中改变了。但是第一类这些变量在solver1.test()之后发生了变化。这个问题的原因是什么?

1 个答案:

答案 0 :(得分:0)

我用下一个方法解决了这个问题。我将全局变量声明为class。在此之后,我可以检查这个进出类的变量。这是不好的方式,但它是有效的。