【问题标题】:MATLAB OOP, can I call calling class methods?MATLAB OOP,我可以调用调用类方法吗?
【发布时间】:2013-03-07 08:36:59
【问题描述】:

例如: 我有两个这样的课程: 在 B 类评论中查找问题,向下。

classdef A < handle
    properties
        classBobj; % class B is a property of class A
    end

    methods
        MethodFromA (obj)
        end
    end
end

classdef B <handle
    methods
        MethodFromB (obj)
            % I is possible to call class A method MethodFromA here
        end
    end
end

【问题讨论】:

  • 你能澄清你的问题吗?你遇到什么错误?此外,类 def 不是有效的 matlab 代码。
  • 什么意思? mathworks.com/help/matlab/ref/classdef.html我只想在B类中调用A类中定义的方法。B类是A类的属性。就像上面的示例代码一样。
  • 显然你可以运行objectA.MethodFromA()。尝试给出一个简单的工作示例(当前没有),然后我们可以讨论这个问题。

标签: oop matlab


【解决方案1】:

有两种方法可以做到这一点:

  1. 您尝试从 A 类调用静态方法,但您必须将其定义为:

    classdef A < handle
    
        properties
            classBobj; % class B is a property of class A
        end
    
        methods (Static)
            MethodFromA()
        end
    
    end
    

这可以在代码中的任何地方调用(不引用 A 的实例)如下A.MethodFromA()

  1. 你有一个A类实例的引用,而不是调用MethodFromB(obj),你应该全部MethodFromB(obj, classAobj)

【讨论】:

  • 不幸的是,这不起作用,因为我希望方法 MethodFromA() 实际访问从 A 创建的对象。
  • Matlab 没有内部类的功能。如果你想访问从 A 创建的对象,那么你至少需要一个对它的引用。
  • 是否可以创建对 MethodFromA() 的全局引用?
猜你喜欢
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多