Matlab 类、属性和方法的点表示法是什么意思?
我是编程方面的新手,除了使用Matlab的基本功能已有几年(操作数组、线性代数、函数、脚本等)外,最近我开始探索程序的面向对象方面(这也是我第一次尝试任何面向对象编程!) 我现在最大的症结是理解这个点符号到底意味着什么。例如,假设我编写了一个简单的类Matlab 类、属性和方法的点表示法是什么意思?,matlab,class,oop,Matlab,Class,Oop,我是编程方面的新手,除了使用Matlab的基本功能已有几年(操作数组、线性代数、函数、脚本等)外,最近我开始探索程序的面向对象方面(这也是我第一次尝试任何面向对象编程!) 我现在最大的症结是理解这个点符号到底意味着什么。例如,假设我编写了一个简单的类 classdef alchemy properties element end methods % CONSTRUCTOR function e = alchemy
classdef alchemy
properties
element
end
methods
% CONSTRUCTOR
function e = alchemy
e.element = ' ';
end
end
end
e.element
实际上是什么意思?然后在命令行中键入
e.element = 'LEAD'
将字符串'LEAD'
分配给类炼金术的属性元素
的一个实例。。。。为什么会这样
现在让我添加这个方法
function e = transmute(e)
oldElem = e.element;
if oldElem == 'LEAD'
e = 'GOLD';
elseif oldElem == 'GOLD'
e = 'LEAD';
else
disp('Oh no! This is a non-transmutable element.');
end
end
我现在可以在命令行中输入e=e.transmute
,它将返回
e =
GOLD
在这种情况下,点符号是怎么回事?为什么e.transumte
将功能transmute
应用于e
?我真的被整个符号弄糊涂了,Matlab的帮助页面都没有给我任何更深的线索。任何帮助都将不胜感激 点表示法用于对象的属性或调用方法
它有两种含义
name_object.abc
如果abc是name\u对象的属性,则将为您提供abc值;如果abc是方法,则将在name\u对象上调用abc。点符号用于对象的属性/属性或调用方法
它有两种含义
name_object.abc
如果abc是name\u object的属性,则将为您提供abc的值;如果abc是方法,则将在name\u object上调用abc。Matlab中的类(或对象)是属性
和方法
的集合
可能令人困惑的是,您的方法transmute
接受对象(它应该接受),但返回与原始对象具有相同变量名的字符串。它或多或少是一种“获取值”方法。不是变形的物体
通过这种方式,它返回已转换的对象
function e = transmute(e)
switch e.element
case 'LEAD'
e.element = 'GOLD';
case 'GOLD'
e.element = 'LEAD';
otherwise
disp('Oh no! This is a non-transmutable element.');
end
end
您也可以这样调用该方法:
e = transmute(e)
等于
e = e.transmute
Matlab中的类(或对象)是属性
和方法
的集合
可能令人困惑的是,您的方法transmute
接受对象(它应该接受),但返回与原始对象具有相同变量名的字符串。它或多或少是一种“获取值”方法。不是变形的物体
通过这种方式,它返回已转换的对象
function e = transmute(e)
switch e.element
case 'LEAD'
e.element = 'GOLD';
case 'GOLD'
e.element = 'LEAD';
otherwise
disp('Oh no! This is a non-transmutable element.');
end
end
您也可以这样调用该方法:
e = transmute(e)
等于
e = e.transmute
非常清楚。事实上,现在这更有意义了!(为什么他们在mathworks页面上没有这么简单的解释…?)对于
的解释非常清楚。事实上,现在这更有意义了!(为什么他们在mathworks页面上没有这么简单的解释…?)对于
酷,他们有这样的解释,谢谢!开关是否仅在方法中起作用?我也不太明白你的第二段。你所说的“transmute
接受对象”是什么意思?然后通过“它是[…]一个‘get value of’方法。”?我最初写它的方式产生的结果与你重新写的完全相同。不<代码>开关
是正常的。您有一个名为transmute
的方法。在输入的右侧,它接受e。这是你的目标。在左边,输出,它输出一个叫做e的东西。在你的例子中是字符串,在我的例子中是对象。(在你的情况下,当它不可转换时,它返回对象。)酷,谢谢!开关是否仅在方法中起作用?我也不太明白你的第二段。你所说的“transmute
接受对象”是什么意思?然后通过“它是[…]一个‘get value of’方法。”?我最初写它的方式产生的结果与你重新写的完全相同。不<代码>开关
是正常的。您有一个名为transmute
的方法。在输入的右侧,它接受e。这是你的目标。在左边,输出,它输出一个叫做e的东西。在你的例子中是字符串,在我的例子中是对象。(在您的情况下,如果不可转换,则返回对象。)