MATLAB面向对象编程中类的默认优先级

      通过简单的测试,我自己总结出来的默认规则是:在MATLAB面向对象编程的类使用中,如果出现同名的方法,那么在调用的过程中MATLAB会采用先入为主的方式来判断其优先级。

      通过一个例子简单示范说明,首先定义两个类classA和classB,具体的代码如下:

classA:

classdef classA

    properties

        a;

    end

    methods

        function obj = classA(value)

            obj.a = value;

        end

        function MyMethod(obj,oj_classB)

            disp('The MyMethod of classA is called!');

        end

    end

end

 

classB

classdef classB

    properties

        b;

    end

    methods

        function obj = classB(value)

            obj.b = value;

        end

        function MyMethod(obj,obj_classB)

            disp('The MyMethod of classB is called!');

        end

    end

end

 

   再MATLAB的命令窗中进行测试操作,具体如下:

>> obj_classA = classA(3)

 

obj_classA =

 

  classA withproperties:

 

    a: 3

 

>> obj_classB = classB(4)

 

obj_classB =

 

  classB withproperties:

 

    b: 4

 

>> MyMethod(obj_classA,obj_classB)

The MyMethod of classA is called!

>> MyMethod(obj_classB,obj_classA)

The MyMethod of classB is called!

      通过上面的操作记录可以看出,当classA首先被传入的时候,方法最终采用了classA的方法。此时,classA具有高出classB的优先级。但是,反过来,先传入classB的时候情况则恰恰想法。这样,在结论上我们就可以给开篇的结论再加一条:在方法调用过程中,在没有指明优先级的情况下,优先级根据函数参数传入的顺序从左到右依次降低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值