创建一个简单的类
设计类
类的基本目的是定义一个对象,该对象封装了数据和操作这些数据。例如,BasicClass
定义了一个属性和两个方法,操作数据的属性:
价值
——属性包含数字数据存储在类的一个对象舍入
——方法轮两位小数的财产的价值multiplyBy
——方法繁殖指定数量的财产的价值
开始一个类定义classdef
块,然后定义类的属性和方法在这一块。这里的定义类名称
结束……BasicClass
:
classdefBasicClass属性价值{mustBeNumeric}结束方法函数r =凑整(obj) r =圆([obj.Value], 2);结束函数r = multiplyBy (obj, n) r = [obj.Value] * n;结束结束结束
总结类的语法,请参阅classdef
。
使用类:
保存的类定义
。m
文件名称相同的类。创建一个对象的类。
访问属性分配数据。
调用方法来执行操作的数据。
创建对象
创建一个对象类的使用类名:
一个= BasicClass
与属性= BasicClass:价值:[]
最初,属性值是空的。
访问属性
分配一个值价值
属性使用对象变量和属性名前一个点:
a.Value= pi/3;
要返回一个属性值,使用点符号没有任务:
a.Value
ans = 1.0472
类属性的信息,请参阅属性的语法。
调用方法
调用舍入
方法对象一个
:
舍入(a)
ans = 1.0500
将对象作为第一个参数传递给方法,需要多个参数,在这个调用multiplyBy
方法:
multiplyBy (3)
ans = 3.1416
你也可以调用一个方法使用点符号:
a.multiplyBy (3)
通过对象作为一个显式参数时不需要使用点符号。使用对象的符号左边的点。
类方法的信息,请参阅方法的语法。
添加构造函数
类可以定义一个特殊的方法来创建对象的类,称为构造函数。构造函数方法使您能够将参数传递给构造函数,您可以指定属性值。的BasicClass
价值
属性限制了其可能的值使用mustBeNumeric
函数。
这是一个构造函数BasicClass
类。当你调用构造函数输入参数,它是分配给价值
财产。如果你没有一个输入参数,调用构造函数价值
属性默认值为空([]
)。
方法函数obj = BasicClass (val)如果输入参数个数= = 1 obj。值= val;结束结束结束
通过添加这类定义构造函数,您可以创建一个对象并设置属性值在一个步骤:
一个= BasicClass(π/ 3)
与属性:= BasicClass值:1.0472
构造函数可以执行相关操作创建对象的类。
构造函数的信息,请参阅类的构造函数方法。
Vectorize方法
MATLAB®使您操作进行向量化。例如,您可以添加一个号码一个向量:
(1 2 3)+ 2
ans = 3 4 5
MATLAB增加数量2
数组中的每个元素(1 2 3)
。算术运算符进行向量化方法,将obj.Value
属性引用在括号中。
(obj。价值] + 2
这个语法允许对象的方法来处理数组。例如,创建一个对象数组使用索引任务。
obj (1) = BasicClass (2.7984);obj (2) = BasicClass (sin(π/ 3));obj (3) = BasicClass (7);
这两个表达式是等价的。
(obj。价值] + 2 [obj(1).Value obj(2).Value obj(3).Value] + 2
的舍入
方法是矢量化,因为属性引用封闭在括号中。
r =圆([obj.Value], 2);
舍入
是矢量,它可以操作数组。
舍入(obj)
ans = 2.8000 0.8700 7.0000
重载函数
类可以实现现有功能,比如,通过定义一个具有相同名称的方法,现有的MATLAB函数。例如,假设您想要添加两个BasicClass
对象。添加的值是有意义的价值
每一个对象的属性。
这是一个重载版本的MATLAB+
函数。它定义了的BasicClass
类添加属性值:
方法函数r = + (o1、o2) r = (o1群。值]+ [o2.Value];结束结束
通过实现一个方法调用+
,你可以使用“+
"操作符的对象BasicClass
。
一个= BasicClass(π/ 3);b = BasicClass(π/ 4);a + b
ans = 1.8326
通过vectorizing +方法,您可以操作对象数组。
一个= BasicClass(π/ 3);b = BasicClass(π/ 4);c = BasicClass(π/ 2);基于“增大化现实”技术= [b];基于“增大化现实”技术+ c
ans = 2.6180 - 2.3562
相关信息
重载函数的更多信息,请参阅在类定义重载函数。
重载操作符的信息,请参阅操作符重载。
BasicClass
代码清单
这是BasicClass
定义后添加这个话题讨论的特性:
classdefBasicClass属性价值{mustBeNumeric}结束方法函数obj = BasicClass (val)如果输入参数个数= = 1 obj。值= val;结束结束函数r =凑整(obj) r =圆([obj.Value], 2);结束函数r = multiplyBy (obj, n) r = [obj。值]* n;结束函数r = + (o1、o2) r = (o1群。值]+ [o2.Value];结束结束结束