classdef
クラス定義のキーワード
構文
classdef (Attributes
)ClassName
<SuperclassNames
properties (Attributes
) ... end methods (Attributes
) ... end events (Attributes
) ... end enumeration ... end end
説明
classdef ... end
は、クラス定義を囲みます。classdef
ブロックの最初の行の構文は次のとおりです。
classdef (Attribute1 = value1, Attribute2 = value2,...) ClassName < SuperclassName1 & SuperclassName2 & ...
(
— オプションのクラス属性。属性名とそれに関連付けられた値のコンマ区切りリストとして指定します。たとえば、次の構文は、許可されたサブクラスの制限付きリストを使用して、抽象クラスを定義します。Attribute1 = value1
,Attribute2 = value2
,...)classdef (Abstract = true, AllowedSubclasses = {ClassA, ClassB}) exampleClass
logical 値を取る属性は、明示的な値がなくても使用できます。前の例では、明示的な値を使用せずに
Abstract
を指定すると、属性はtrue
に設定されます。詳細については、クラスの属性を参照してください。
— 有効なクラス名は、アルファベットで始まり、英字、数字、またはアンダースコアを含むことができます。ファイル拡張子ClassName
.m
が付いた、クラスと同じ名前のファイルにクラスを保存します。
— スーパークラスのリスト。SuperclassName1
&SuperclassName2
& ...&
文字で区切ります。他のクラスからのクラス派生の詳細については、サブクラス定義を参照してください。
classdef
ブロックには、次のクラス メンバー ブロックのうち 1 つ以上を含めることができます。
プロパティ —
properties (
はプロパティ ブロックを定義します。クラス定義には複数のプロパティ ブロックを格納することができます。各ブロックは、その特定のブロック内のプロパティに適用されるさまざまな属性設定を指定します。プロパティ構文の詳細については、プロパティ構文を参照してください。Attributes
) ... endメソッド —
methods (
はメソッド ブロックを定義します。クラス定義には複数のメソッド ブロックを格納することができます。各ブロックは、その特定のブロック内のメソッドに適用されるさまざまな属性設定を指定します。メソッド構文の詳細については、メソッドの構文を参照してください。Attributes
) ... endイベント —
events (
はイベント ブロックを定義します。クラス定義には複数のイベント ブロックを格納することができます。各ブロックは、その特定のブロック内のイベントに適用されるさまざまな属性設定を指定します。イベント構文の詳細については、イベントとリスナーの構文を参照してください。Attributes
) ... end列挙 —
enumeration ... end
は列挙ブロックを定義します。列挙クラスの定義の詳細については、列挙クラスの定義を参照してください。
例
ヒント
キーワード
classdef
の前には、空行とコメントに限り置くことができます。クラス定義ファイルは、MATLAB® パス上のフォルダーか、親フォルダーが MATLAB パス上にあるクラス フォルダーに配置できます。クラス フォルダー名は
@
文字で始まり、その後にクラス名が続きます (たとえば@MyClass
)。クラス フォルダーの詳細については、クラス定義を含むフォルダーを参照してください。properties
、methods
、events
、およびenumeration
は、所定のオブジェクトまたはクラス名のそれぞれのクラス メンバーをクエリするために使用される MATLAB 関数の名前でもあります。プロパティは定義クラスと同じ名前をもつことはできません。
メソッドはメインのクラス ファイル以外のファイルで定義できます。詳細については、別ファイルのメソッドを参照してください。
バージョン履歴
R2008a で導入