我一直在matlab中构建了许多类,并且最近发现某些函数对我的类没有很好的表现。我的所有对象都继承自句柄超类
例如:
finobj:我找不到任何对象,我的基础对象是否需要成为matlab Root的子级?我该如何设置?
清除:如果我改变了较低对象的属性,清除环境并重新设置对象树会产生警告,可能我需要一个destroy方法吗?
我在这里http://blogs.mathworks.com/videos/2008/07/07/advanced-matlab-class-system-for-oop-in-matlab-introduction/看到一个人应该重载一些操作但是我不希望每个对象都这样做吗?
我的主要问题是我必须为我的代码定义什么才能以明智的方式行事?
答案 0 :(得分:0)
findobj
用于处理图形对象,而不是用户定义的对象。因此,它不会找到你的对象(你为什么要首先找到它们?)。
clear
会影响变量,clear classes
也会影响类定义。请注意,在早期版本的Matlab中,clear classes
也清除了所有断点。
子类继承超类中的所有内容(包括静态方法)。如果您不想修改子类中的特定功能,则无需重载任何内容。
如果您希望代码以合理的方式运行,则必须将其设计得很好。你究竟如何设计它取决于你的代码应该解决的问题。
答案 1 :(得分:0)
事实证明,有许多类可以继承。
我不知道我是否错过了一些东西,但似乎没有一个可以继承的matlab中可能的类的完整列表,表明每个类的赞成。