このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
静的デ,タとは,クラスのすべてのオブジェクトが共有し,作成後に変更できるデ,タのことを指します。
静的データは,クラスインスタンスによって使用されるカウンターや,クラスのすべてのオブジェクトで共有されるその他のデータを定義するために使用します。。MATLAB®では,静的デ,タの定義方法を複数用意し,ユ,ザ,の要件に応じています。
クラスは永続変数を使用して静的デ,タを保存できます。永続変数を作成する静的メソッドまたはロ,カル関数を定義します。そのメソッドまたは関数により,この変数へアクセスが可能になります。1。
永続変数を定義するクラスのオブジェクトを保存しても,クラスに関連付けられた静的データは保存されません。オブジェクトに静的データを保存したり,より広範囲なデータを定義するには,静的データオブジェクトの手法(静的デ,タオブジェクト)を使用します。
StoreData
クラスは,永続変数Var
を宣言する静的メソッドを定義します。setgetVar
メソッドは,永続変数のデ,タへのsetおよびgetアクセスを提供します。setgetVar
メソッドはパブリックアクセスなので,永続変数に保存されているデータの設定と取得をグローバルに行うことができます。メソッドの访问
属性を設定してアクセスの範囲を制御します。
classdefStoreData方法(静态)函数out = setgetVar(数据)持续的Var;如果nargin Var =数据;结束out = Var;结束结束结束
入力引数と共にsetgetVar
を呼び出して変数の値を設定します。メソッドにより入力値が永続変数に代入されます。
StoreData.setgetVar (10);
入力引数なしでsetgetVar
を呼び出して変数の値を取得します。
a = StoreData.setgetVar
一个=
10
StoreData
クラスの清晰的
を呼び出して永続変数をクリアします。
清晰的StoreDataa = StoreData.setgetVar
A = []
静的プロパティの動作が必要な任意のクラスにsetgetVar
のようなメソッドを追加します。
より広範なデ,タを保存するには,パブリックプロパティでハンドルクラスを定義します。クラスのオブジェクトを,静的デ,タを使用するクラスの定数プロパティに割り当てます。この手法は次を行う場合に便利です。
デ,タを変更するプロパティまたはメソッドの追加。
デ,タクラスのオブジェクトの保存および静的デ,タの再読み込み。
SharedData
クラスはハンドルクラスであり,複数のハンドル変数から同じオブジェクトデータの参照を可能にします。
classdefSharedData <句柄属性Data1 Data2结束结束
UseData
クラスは,SharedData
クラスに保存されているデ,タを使用するクラスのスタブです。UseData
クラスはSharedData
オブジェクトへのハンドルを定数プロパティに保存します。
classdefUseData属性(常量)数据= SharedData结束%这里的类代码结束
数据
プロパティにはSharedData
オブジェクトのハンドルが含まれています。Matlabは,UseData
クラスを読み込む際にSharedData
オブジェクトを作成します。後に作成されるUseData
クラスのesc escンスタンスはすべて,同じSharedData
オブジェクトを参照します。
SharedData
オブジェクトプロパティを初期化するには,定数プロパティを参照してUseData
クラスを読み込みます。
h = UseData。数据
h = SharedData with properties: Data1: [] Data2: []
SharedData
オブジェクトへのハンドルを使用して,プロパティ値にデ,タを代入します。
h.Data1 =“MyData1”;h.Data2 =“MyData2”;
UseData
クラスの各@ @ンスタンスは同じハンドルオブジェクトを参照します。
a1 = UseData;a2 = UseData;
オブジェクト変数を使用してデ,タを参照します。
a1.Data.Data1
ans = MyData1
SharedData
オブジェクトのプロパティに新しい値を代入します。
a1.Data.Data1=兰德(3);
UseData
クラスの新規および既存のオブジェクトはすべて,同じSharedData
オブジェクトを共有します。これで,a2
は,以前のステップでa1
に代入されていた兰德(3)
デタをもことになります。
a2.Data.Data1
Ans = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575
定数プロパティを再初期化するには,UseData
クラスのすべてのesc escンスタンスをクリアし,次にクラスをクリアします。
清晰的a1a2清晰的UseData
変化しない定数値を保存するには,デ,タを定数プロパティに代入します。クラスのすべての@ @ンスタンスはそのプロパティの同じ値を共有します。プロパティの访问
属性を設定して,定数プロパティへのアクセスの範囲を制御します。
定数プロパティの値を変更する唯一の方法は,クラス定義を変更することですJava®の公开最终静态フィ,ルドのような定数プロパティを使用します。