一个类中访问属性

4视图(30天)
Deepa Maheshvare
Deepa Maheshvare 2021年8月3日
编辑: 每•艾萨克森 2021年8月3日
我试图找出如果有一种方法可以设置变量的值定义在“名称”通过调用方法通过主函数中定义它。我将输入参数传递给类从terinal主要功能之后,当我做的,我没有看到分配给属性的值输出。
classdef类名称
属性
PropName
propname2
结束
方法(静态)
函数obj = fun1 (__arg1、最长)
obj。PropName = __arg1;
obj。propname2 =最长;
结束
结束
结束
函数主要(arg)
classname.fun1(参数,参数)
结束
从主要调用类名后,我试着访问属性。
一个=类名
返回
一个=
类名称属性:
PropName: []
propname2: []
我预期的回报
类名称属性:
PropName: 10
propname2: 10

答案(2)

Jakeb Chouinard
Jakeb Chouinard 2021年8月3日
编辑:Jakeb Chouinard 2021年8月3日
因为静态方法参考类作为一个整体,而不是它的情况下,我不相信你能够使用一个静态方法设置属性。这部分是因为你打电话 obj 的函数,但在应用程序中,这 obj 不存在的属性的一个实例,所以它的属性,或者类的,不能用这种方法。我的建议是设置这些值使用构造函数或让他们作为常量存储在类可以覆盖:
classdef类名称
属性
PropName = 10;
PropName2 = 10;
结束
方法
函数obj = changeProps (newArg1 newArg2)
obj。PropName = newArg1;
obj。PropName2 = newArg2;
结束
结束
结束
*注意:初始属性值在类声明(上面设置以下属性) 不能 是变量
或者:
classdef类名称
属性
PropName;
PropName2;
结束
方法
函数obj = classname (__arg1、最长)
obj。PropName = __arg1;
obj。PropName2 =最长;
结束
函数obj = changeProps (nArg1 nAarg2)
obj。PropName = nArg1;
obj。PropName2 = nArg2;
结束
结束
结束
*娜戈是短的新论点
欢呼,
Jakeb

每•艾萨克森
每•艾萨克森 2021年8月3日
编辑:每•艾萨克森 2021年8月3日
没有什么特别的名字 obj, 这只是一个名字。的作业方法, fun1, 创建一个结构(命名 obj 与两个字段)。
我假设你试图使一行程序,静态方法 classname.fun1(参数,参数) ,可能的。
classname_2 演示了如何使用一个普通的方法。这需要两行。
classname_3 演示了一个技巧,使一行程序成为可能。然而, 不要使用它 。我相信它最终会带来麻烦。我包括显示类实例, obj, 必须创建之前使用。如果不是传递给方法时,它可以创建在本地(似乎)。
类名。fun1 (1、2)
ans =结构体字段:
PropName: 1 propname2: 2
%
a2 = classname_2;
a2。fun1 (3、4)
ans =
classname_2属性:PropName: 3 propname2: 4
%
classname_3。fun1 (5、6)
ans =
类名称属性:PropName: 5 propname2: 6

标签

s manbetx 845


释放

R2021a

社区寻宝

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

开始狩猎!