MATLAB面向对象编程:利用方法函数修改对象属性时如何返回

如图所示,如果之间在主函数中调用这个方法(xiugai()),此时加入断点进行查看。可以发现,在逐行运行时,当代码运行到test对象的xiugai方法的时候,this的值确实由“10”变为“11”,但是当代码返回到主函数的时候,a的值却没有变化。这是因为,在test对象的代码中,this和主函数中的a是分别不同的两个东西(虽然我们将其视为一个,但是MATLAB就不),this的值无法传递给a。

所以MATLAB编译器会提示“用于修改对象的值类方法必须返回所修改的对象。”。

可以让这个test类继承“handle”,此时可以实现对象数值的返回。(当提示无法继承的时候(运行时会报错),此时,只需要在classdef后面添加“(HandleCompatible) ”即可)

在MATLAB R2015b及以后的版本中,推荐的做法是在类定义中使用 classdef (HandleCompatible) 注释来指定整个类与 handle 语义兼容,而不是在每个属性上使用 properties (HandleCompatible)。这是因为 HandleCompatible 属性现在被视为整个类的属性,而不仅仅是属性的属性。

问题得到解决

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Matlab面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,在面向对象的编程中,数据和行为被封装在一个对象中,对象之间通过消息传递进行交互。 Matlab中的面向对象编程主要包括以下几个方面: 1.类和对象:类是一种数据类型,用于描述具有相似属性和行为的对象的集合。对象是类的实例,具有类中定义的属性方法。 2.属性方法:类中的属性对象的数据成员,用于描述对象的状态。类中的方法对象的成员函数,用于描述对象的行为。 3.继承和多态:继承是一种机制,通过继承一个已有的类来创建一个新类,新类可以继承原类的属性方法。多态是一种机制,允许不同类的对象对同一消息作出不同的响应。 4.访问控制:访问控制是一种机制,用于限制类中的属性方法的访问权限,以保障类的数据安全性。 下面是一个简单的Matlab面向对象编程示例: ```matlab % 创建一个类Person classdef Person properties name age end methods function obj = Person(name, age) obj.name = name; obj.age = age; end function sayHello(obj) fprintf('Hello, my name is %s and I am %d years old.\n', obj.name, obj.age); end end end % 创建一个Person对象并调用其sayHello方法 p = Person('Tom', 20); p.sayHello(); ``` 在上述示例中,我们创建了一个名为Person的类,该类具有两个属性name和age,以及一个方法sayHello,该方法用于打印对象的信息。我们创建了一个Person对象p,并调用其sayHello方法,输出结果为“Hello, my name is Tom and I am 20 years old.”。 这只是一个简单的示例,Matlab面向对象编程还有更多高级的特性。如果您想深入了解Matlab面向对象编程,请参考Matlab官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值