主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

静的デ,タ

静的デ,タとは

静的デ,タとは,クラスのすべてのオブジェクトが共有し,作成後に変更できるデ,タのことを指します。

静的データは,クラスインスタンスによって使用されるカウンターや,クラスのすべてのオブジェクトで共有されるその他のデータを定義するために使用します。。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®の公开最终静态フィ,ルドのような定数プロパティを使用します。

参考

|

関連する例

詳細