ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

handle

派生するハンドル クラスの抽象クラス

構文

classdef MyHandleClass < handle

説明

classdef MyHandleClass < handleMyHandleClasshandle クラスのサブクラスにします。

handle クラスは、ハンドル セマンティクスに従うすべてのクラスのスーパークラスです。ハンドルは、オブジェクトへの参照です。オブジェクトのハンドルをコピーする場合、MATLAB® はハンドルのみをコピーし、オリジナルおよびコピーは同じオブジェクト データを参照します。入力引数として渡されたハンドル オブジェクトが関数によって変更された場合、その変更内容は元の入力オブジェクトに影響を及ぼします。

反対に、非ハンドル オブジェクト (すなわち、値オブジェクト) は参照しません。関数のワークスペース外のオブジェクトを変更するには、関数が、呼び出し元に変更された値オブジェクトを返せなければなりません。

関数にオブジェクトを渡す方法の詳細は、「オブジェクトの変更」を参照してください。

ハンドル オブジェクトの動作は、オブジェクト作成時にハンドルを保存するかどうか、別の変数にハンドルを保存するかどうか、findobjgca のような便利な関数によりハンドルを取得するかどうかにかかわらず、グラフィックス オブジェクトのハンドルは必ず特定のインスタンスを参照する Handle Graphics® オブジェクトの動作と似ています。

イベントを定義するクラスを作成する場合は、handle クラスからクラスを導出しなければなりません。

handle クラスは抽象クラスであり、ユーザーはこのクラスのインスタンスを直接作成できません。他のクラスを導出するには、handle クラスを使用します。これは、インスタンスをハンドル オブジェクトである具象クラスにすることも可能です。ハンドル クラスの使用方法の詳細は、「ハンドル クラス」を参照してください。

ハンドルクラスのメソッド

クラス handle からクラスを導出すると、そのクラスは次のメソッドを継承します。

メソッド目的

addlistener

指定したイベントのリスナーを作成し、イベント発生時に実行するコールバック関数を割り当てます。

notify

指定されたハンドル オブジェクトまたはハンドル オブジェクトの配列で、特定のイベントが発生していることを示す通知を送信します。

delete

オブジェクトのライフサイクルが終了するときに呼び出される、ハンドル オブジェクトのデストラクター メソッド。

findobj

ハンドル オブジェクトの入力配列から、指定した条件と一致するオブジェクトを検索します。

findprop

指定したプロパティ名に関連付けられている meta.property オブジェクトを返します。

isvalid

入力配列の対応する要素が有効なハンドルである場合に、各要素が true となる論理配列を返します。このメソッドは Sealed であるため、ハンドル サブクラスのものをオーバーライドすることはできません。

eq
ne
lt
le
gt
ge
relationaloperators

論理関数は、入力ハンドル オブジェクト配列の組と同じサイズの論理配列を返します。比較は、各ハンドルに関連する数値を使用します。同じ 2 つのハンドルは、必ず同じように比較し、同じ MATLAB セッション内の 2 つのハンドルを繰り返し比較すると、必ず同じ結果になることを仮定できます。異なるハンドルは必ず非等価となります。ハンドルの順序は完全な任意ですが、一貫性が必要です。

ハンドル クラスのイベント

ハンドル クラスは、1 つのイベントを定義します。

ObjectBeingDestroyed

このイベントは、ハンドル クラスが破棄される直前にトリガーされます。このイベントに対するリスナーを定義すると、MATLAB がハンドル オブジェクトを破棄する前にコールバックが実行されます。

addlistener メソッドを使用すると、このイベントのリスナーを追加できます。イベントおよびリスナーの使用方法の詳細は、「イベントとリスナー - 構文と手法」を参照してください。

オブジェクトが破棄されたときに MATLAB が呼び出すハンドル サブクラスに delete メソッドを定義できます。「ハンドル クラスのデストラクター」を参照してください。

ハンドル サブクラス

以下の抽象サブクラス handle を使用して、より特殊な handle クラスを導出することができます。

  • hgsetget — set を継承するハンドル クラスを作成したり、Handle Graphics の関数 set や関数 get と同じ動作をするメソッドを取得したりする場合に使用します。

  • dynamicprops — インスタンス データ (動的に定義されるプロパティ) をオブジェクトに追加するためのハンドル クラスを作成する場合に使用します。

  • matlab.mixin.Copyable – ハンドル サブクラスにコピー メソッドを追加するときに使用します。

便利な関数

  • properties — クラス パブリック プロパティの一覧を表示します。

  • methods — クラス メソッドの一覧を表示します。

  • events — クラスにより定義されるイベントの一覧を表示します。

関数 ishandle は、ハンドル クラス オブジェクトについてはテストしないことに注意してください。代わりに関数 isa を使用します。

この情報は役に立ちましたか?