主要内容

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

クラス設計でのメソッド

クラスメソッド

”“メソッドとは,クラスのオブジェクトに実行する操作を実装する関数です。他のクラスメンバーと共に,メソッドはカプセル化の概念をサポートします。クラスのインスタンスはプロパティにデータを含み、クラス メソッドはそのデータを操作します。この設計によって、クラスの内部動作をクラス外部のコードから隠蔽できるので、クラス外部のコードに影響を与えずにクラスの実装を変更できます。

メソッドは,他のメソッドやプロパティなど,クラス内部のプライベートなメンバーにアクセスできます。このカプセル化によりデータを隠蔽でき,オブジェクトに保存されたデータへのアクセスに必要な専用インターフェイスを作成できるようになります。

例と構文

クラスの記述開始の例については,単純なクラスの作成を参照してください。

サンプルコードと構文については,クラスのメソッドおよび関数の定義を参照してください。

MATLAB®の標準的動作を変更するクラスを作成する方法についての説明は,既定の動作を変更するメソッドを参照してください。

@とパスディレクトリの使用,およびクラスファイルをまとめるパッケージの詳細については,クラスファイルとクラスフォルダーを参照してください。

複数のファイルでクラスを定義する際に使用する構文は,別ファイルのメソッドを参照してください。

メソッドの種類

以下のように,ある機能を実行したり特定の動作をする,特化した種類のメソッドがあります。

  • “通常のメソッド”は,1つまたは複数のオブジェクトに機能する関数であり,新しいオブジェクトあるいは計算値を返します。このメソッドは,入力引数を変更できない通常のMATLAB関数に似ています。通常のメソッドにより,クラスは,算術演算や計算を行う関数を実装できます。このメソッドには,操作の対象となるクラスのオブジェクトが必要です。通常のメソッドを参照してください。

  • “コンストラクターメソッド”は,クラスのオブジェクトを作成する特化したメソッドです。コンストラクターメソッドは,クラスと同じ名前をもち,通常は,入力引数から得られるデータでプロパティ値を初期化します。クラスコンストラクターメソッドでは、少なくとも 1 つの出力引数 (作成するオブジェクト) を宣言しなければなりません。最初の出力は常に作成するオブジェクトです。クラスコンストラクターメソッドを参照してください。

  • “デストラクターメソッド”は,オブジェクトが破棄されるときに自動的に呼び出されます。たとえば,删除(对象)を呼び出した場合や,オブジェクトへの参照がなくなった場合などです。ハンドルクラスのデストラクターを参照してください。

  • “プロパティアクセスメソッド”を使用すると,プロパティ値のクエリや設定が行われるときに実行するコードを,クラスが定義できます。プロパティアクセスメソッドを参照してください。

  • “静的メソッド“はクラスに関連する関数ですが,必ずしもクラスオブジェクトを操作しません。このメソッドは,メソッドの呼び出し中に,参照されるクラスのインスタンスを必要としませんが,通常は,クラスに特化した方法で操作を実行します。静的メソッドを参照してください。

  • “変換メソッド“は,他のクラスからオーバーロードされるコンストラクターメソッドであり,ユーザークラスのオブジェクトをオーバーロードされるコンストラクターのクラスに変換できます。たとえば,ユーザークラスがメソッドを実装すると,双クラスコンストラクターではなく,このメソッドが呼び出され,ユーザークラスのオブジェクトがMATLAB双オブジェクトに変換されます。詳細は,オブジェクトコンバーターを参照してください。

  • “抽象メソッド“はそれ自体はインスタンス化できないクラスを定義します。しかし,このクラスは多数のサブクラスで使用する共通インターフェイスを定義する方法となります。抽象メソッドを含むクラスは,インターフェイスとも呼ばれます。詳細と例は,抽象クラスとクラスメンバーを参照してください。

メソッドの命名

メソッドを実装する関数名は,次のいずれかの場合にのみ,ドットを含むことができます(例,集。PropertyName) 。

プロパティアクセスメソッドまたは変換メソッドをローカル関数,入れ子関数として定義したり,自身のファイルに別々に定義したりできません。クラスコンストラクターとパッケージスコープ関数は,関数定義に非修飾名を使用しなければなりません。関数定義ステートメントにパッケージ名を含めないでください。

関連するトピック