主要内容

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

別ファイルのメソッド

クラスフォルダー

一部の例外(classdefファイルで定義しなければならないメソッドを参照)を除き,クラス定義ファイルとは別のファイルにクラスのメソッドを定義できます。

複数のファイルを使用してクラスを定義するには,で始まり,その後にクラス名が続く名前のフォルダーにクラスファイルを格納します。このフォルダーはクラスフォルダーと呼ばれます。クラスフォルダーの親フォルダーがMATLAB®パスにあることを確認してください。

クラスフォルダーが1つ以上のパッケージフォルダーに含まれている場合は,最上位のパッケージフォルダーがMATLABパス上になければなりません。

たとえば,@MyClassというフォルダーには,classdefブロックを含むMyClass.mファイルがなければなりません。さらにこのフォルダーには,00拡張子をもつ他のファイルで定義された,他のメソッドと関数が含まれます。@MyClassフォルダーにはいくつかのファイルを含めることができます。

@MyClass / MyClass。m @MyClass / subsref。m @MyClass / subsasgn。m @MyClass / horzcat。m @MyClass / vertcat。m @MyClass / myFunc.m

メソッドファイルのタイプ

MATLABはクラスフォルダー内のすべての関数ファイルをクラスのメソッドとして扱います。関数ファイルにはMATLABコード(00),ライブコードファイル形式(.mlx),墨西哥人関数(プラットフォーム依存の拡張子),およびPコードファイル(每分钟)を使用できます。ファイルのベース名は、有効な MATLAB 関数名でなければなりません。有効な関数名は、アルファベットで始まり、文字、数字またはアンダースコアを含むことができます。

c++墨西哥人関数としてメソッドを定義する方法の詳細については,MATLABクラスメソッドに対する墨西哥人関数の使用を参照してください。

関数ファイルでのメソッドの定義

メソッドをクラスフォルダー内の別のファイルで定義するには,ファイル内に関数を作成します。そのファイルでは方法-结束キーワードを使用しないでください。関数の場合と同様に、関数名を使用してそのファイルに名前を付けます。

myFunc.mファイルに次のメソッドを実装します。

函数输出= myFunc (obj, __arg1最长)...%的代码在这里结束

方法ブロック内のclassdefファイルで関数シグネチャを宣言しておくことをお勧めします。

classdefMyClass方法输出= myFunc (obj, __arg1最长)结束...结束

classdefファイルでのメソッド属性の指定

別の関数ファイルで定義したメソッドにメソッド属性を指定する場合は,classdefファイルの方法ブロックにメソッドのシグネチャを含めます。この方法ブロックは,メソッドに適用される属性を指定します。

たとえば次のコードは,方法ブロック内で访问私人に設定されているメソッドを示しています。メソッドの実装は別のファイルにあります。函数または结束キーワードは方法ブロックに含めないでください。入力引数および出力引数の表記された関数シグネチャのみを含めます。

classdefMyClass方法myFunc(obj,arg1,arg2) = myFunc(obj,arg1,arg2)结束结束

@MyClassフォルダーのmyFunc.mというファイルで,次の関数を定義します。

函数输出= myFunc (obj, __arg1最长)...结束

別ファイルでの静的メソッド

静的メソッドを作成するには,メソッドの静态属性を真正的に設定し,classdefファイル内の静的メソッドに関数シグネチャをリストします。関数名と共に,入力引数と出力引数を含めます。次に例を示します。

classdefMyClass...方法(Static) output = staticFunc1(arg1,arg2结束...结束

同じ関数シグネチャを使用して,別のファイルで関数を定義します。たとえば,ファイル@MyClass / staticFunc1.mで次のようにします。

函数输出= staticFunc1 (__arg1、最长)...结束

また,@Myclass / staticFunc2.mで次のようにします。

函数staticFunc2...结束

classdefファイルで定義しなければならないメソッド

次のメソッドはclassdefファイルで定義します。これらのメソッドを別ファイルで定義することはできません。

  • クラスコンストラクター

  • 関数名にドットを使用する関数。以下が含まれます。

    • クラスがパッケージに含まれているため,パッケージ名をクラス名の一部として使用しなければならないコンバーターメソッド

    • プロパティの设置および得到アクセスメソッド

関連情報

関連するトピック