一类的基本目的是定义一个封装数据和操作上的数据执行的对象。例如,BasicClass
定义了一个属性,并且在该属性的数据进行操作的两种方法:
值
- 属性,它包含存储在类的一个对象的数值数据
四舍五入
- 方法,除此之外,该属性的值到小数点后两位
乘以
- 方法是按指定的数字乘以属性的值
这里的定义BasicClass
:
classdefBasicClass性能值{} mustBeNumeric结束方法功能R =舍入(OBJ)R = ROUND([obj.Value],2);结束功能R = multiplyBy(OBJ中,n)R = [obj.Value] * N;结束结束结束
对于类语法的摘要,请参阅classdef
。
使用类:
保存在一个类定义.M
具有相同名称的类文件。
创建一个类的对象。
访问属性来分配数据。
调用方法对数据进行操作。
创建使用类名的类的对象:
A = BasicClass
A = BasicClass具有属性:值:[]
最初,属性值是空的。
分配一个值到值
使用对象变量和属性名前点属性:
a.value中= PI / 3;
要返回一个属性值,使用点符号,而不分配:
一个值
ANS = 1.0472
有关类属性的信息,请参阅类属性。
调用四舍五入
上对象的方法一个
:
舍入(a)中
ANS = 1.0500
传递对象作为第一个参数给带有多个参数的方法,如在本调用myltiplyBy
方法:
multiplyBy(A,3)
ANS = 3.1416
您还可以使用点符号调用一个方法:
a.multiplyBy(3)
这是没有必要使用圆点符号时,明确地传递对象作为参数。标记使用对象的点和方法名的左侧。
有关类方法的信息,请参阅方法和功能
类可以定义一个特殊的方法来创建类,称为构造的对象。构造方法使您将参数传递给构造函数,您可以指定为属性值。该BasicClass
值
属性限制使用其可能的值mustBeNumeric
功能。
下面是一个构造函数BasicClass
类。当调用带有输入参数的构造,它被分配到值
属性。如果调用构造函数没有输入参数,值
酒店的空默认值([]
)。
方法起作用OBJ = BasicClass(VAL)如果nargin == 1 obj.Value = VAL;结束结束结束
通过添加此构造函数的类定义,你可以创建一个对象,并在一个步骤设置属性值:
一个= BasicClass(PI / 3)
A = BasicClass具有属性:值:1.0472
构造函数可以执行与创建类的对象等操作。
有关构造函数的信息,请参阅类的构造方法
MATLAB®使您能够矢量化操作。例如,您可以将号码添加到一个向量:
[1 2 3] + 2
ANS = 3 4 5
MATLAB增加数量2
每个阵列中的元素的[1 2 3]
。向量化算术运算符方法,封闭obj.Value
括号物业参考。
[obj.Value] + 2
此语法使与对象的阵列的方法来工作。例如,创建使用索引分配一个对象数组。
OBJ(1)= BasicClass(2.7984);OBJ(2)= BasicClass(SIN(PI / 3));OBJ(3)= BasicClass(7);
那么这个表达式:
[obj.Value] + 2
相当于这个表达式:
[OBJ(1)。价值OBJ(2)。价值OBJ(3)。价值] + 2
由于四舍五入
方法被矢量,它可以在阵列运行:
舍人(OBJ)
ANS = 2.8000 0.8700 7.0000
类可以通过定义具有相同的名称作为现有的MATLAB函数的方法实施的现有功能,如加法,。例如,假设你要添加两个BasicClass
对象。这是有道理的增加的值值
每个对象的属性。
这里是MATLAB的重载版本加
功能。它定义额外增加了BasicClass
类作为添加属性值:
方法功能R =正(O1,O2)R = [o1.Value] + [o2.Value];结束结束
通过实施一个名为方法加
,你可以使用“+
”运营商的对象BasicClass
。
一个= BasicClass(PI / 3);B = BasicClass(PI / 4);A + B
ANS = 1.8326
通过矢量化的加方法,你可以在对象数组操作。
一个= BasicClass(PI / 3);B = BasicClass(PI / 4);C = BasicClass(PI / 2);AR = [A B];AR + C
ANS = 2.6180 2.3562
有关重载函数的信息,请参阅在类定义重载函数。
有关运算符重载信息,请参阅运算符重载。
BasicClass
代码这里是BasicClass
加入这个话题讨论的所有特性之后的定义:
classdefBasicClass性能值{} mustBeNumeric结束方法功能OBJ = BasicClass(VAL)如果nargin == 1 obj.Value = VAL;结束结束功能R =舍入(OBJ)R = ROUND([obj.Value],2);结束功能R = multiplyBy(OBJ中,n)R = [obj.Value] * N;结束功能R =正(O1,O2)R = [o1.Value] + [o2.Value];结束结束结束