面向对象的代码的组织

29日视图(30天)
亚历克斯
亚历克斯 2023年5月16日20:22
回答: FannoFlow 2023年5月17日在0:38
的歉意,如果这已经回答somwhere……
我试图创建一个组织结构fo面向对象代码。我认为最好的方法就是与包和类的组合。目前,我有一个文件夹结构是这样的:
+ MyPackage
+ Foo
@bar
在+ Foo类定义为Foo。我的目的之一是这是一个抽象类,目前没有属性,只有一个构造函数方法
classdeffoo(抽象)
%这个类FOO的总结
方法(抽象)
函数obj = foo ()
obj = [];
结束
结束
结束
@bar里面我有一个类定义与contructor方法定义了一个属性栏。我想其他方法@bar。m文件的文件夹
classdef酒吧< foo
%的酒吧总结这类
属性
数据
结束
方法
函数obj =酒吧(数据)
obj =数据;
结束
结束
结束
我的希望是做类似的foo创建一个实例
obj = MyPackage.foo.bar(数据)
然后访问没有创作在@bar文件夹中使用类似的方法
obj.modify_bar ()
不过,现在当我试图创建一个实例的酒吧我得到以下错误:
错误使用MyPackage.foo.bar
指定的超类“foo”包含一个解析错误,无法找到在MATLAB的搜索路径,或由另一个文件名称相同的阴影。
foo出现ot的matlab文件夹路径,因为它是一个包。
我做一些情况worng吗?我应该结构及我的代码在不同的时尚吗?抱歉我新matlab的面向对象编程。
2的评论
亚历克斯
亚历克斯 2023年5月17日在0:37
也许,但我仍然得到同样的错误= true

登录置评。

答案(1)

FannoFlow
FannoFlow 2023年5月17日在0:38
下面是我建议你创建文件夹结构:
+包/ Foo / @Foo / Foo.m
+包/ Foo / @Bar / Bar.m
Foo.m:
classdef(抽象= true) Foo
结束
Bar.m:
classdef酒吧< Package.Foo.Foo
%的酒吧总结这类
属性
数据
结束
方法
函数obj =酒吧(数据)
obj =数据;
结束
结束
结束
最后:
myBar = Package.Foo.Bar (42);
myBar.data

类别

找到更多的在构建和使用对象数组帮助中心文件交换

标签

下载188bet金宝搏


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!