静态数据是指类分享的所有对象以及在创建后可以修改的数据。
使用静态数据来定义类实例或在类的所有对象中共享的其他数据使用的计数器。与实例数据不同,静态数据不会因对象而异。马铃薯®根据您的要求提供多种方法来定义静态数据。
类可以使用持久变量来存储静态数据。定义静态方法或本地函数,在其中创建持久变量。方法或函数提供对此变量的访问。当您想要存储一个或两个变量时,请使用此技术。
保存定义持久变量的类的对象不保存与类关联的静态数据。要在对象中保存静态数据,或定义更广泛的数据,请使用静态数据对象技术静态数据对象
这存储数据
类定义了一种声明持久变量的静态方法var.
。这setgetvar.
方法提供设置并访问持久变量中的数据。因为这setgetvar.
方法具有公共访问,可以设置并获取全局存储在持久变量中的数据。通过设置方法来控制访问范围使用权
属性。
Classdef.存储数据方法(静止的)功能out = setgetvar(数据)执着的var;如果nargin var =数据;结尾出= var;结尾结尾结尾
通过调用来设置变量的值setgetvar.
使用输入参数。该方法将输入值分配给持久变量:
setaindata.setgetvar(10);
通过调用获取变量的值setgetvar.
没有输入参数:
a = setaindata.setgetvar.
一种=
10.
通过调用清除持久变量清除
在这一点存储数据
班级:
清除存储数据a = setaindata.setgetvar.
a = []
添加一种方法setgetvar.
对于您希望静态属性行为的任何类。
要存储更广泛的数据,请定义具有公共属性的句柄类。将类的对象分配给使用静态数据的类的常量属性。当您想要时,这种技术非常有用:
添加更多修改数据的属性或方法。
保存数据类的对象并重新加载静态数据。
这SharedData.
class是一个句柄类,它使您可以从多个句柄变量引用相同的对象数据:
Classdef.SharedData <句柄特性data1 data2.结尾结尾
这useus.
类是使用存储在中的数据的类的存根SharedData.
班级。这useus.
类将句柄存储到一个SharedData.
常量属性的对象。
Classdef.useus.特性(常量)数据= SharedData结尾这里%类代码结尾
这数据
属性包含句柄SharedData.
目的。Matlab构造了SharedData.
加载时对象useus.
班级。所有随后创建的实例useus.
课程是指同样的SharedData.
目的。
初始化SharedData.
对象属性,加载useus.
class通过引用常量属性。
h = Urderata.data.
H =具有属性的SharedData:Data1:[] Data2:[]
使用句柄到SharedData.
对象将数据分配给属性值:
H.Data1 ='mydata1';H.Data2 ='mydata2';
每个实例useus.
类是指相同的句柄对象:
A1 = USEDATA;A2 = USEDATA;
使用对象变量引用数据:
a1.data.data1.
ans = mydata1.
为属性分配新值SharedData.
目的:
a1.data.data1 = rand(3);
所有新的和现有的对象useus.
类分享相同SharedData.
目的。a2
现在有兰特(3)
分配给的数据A1
在上一步:
a2.data.data1.
ANS = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575
重新升级恒定财产,清除所有实例useus.
班级然后清除课程:
清除A1a2清除useus.
要存储不会更改的常量值,请将数据分配给常量属性。所有类的所有实例都对该属性共享相同的值。通过设置属性来控制对常量属性的访问范围使用权
属性。
更改常量属性值的唯一方法是更改类定义。使用Java中的公共最终静态字段等常量属性®。