ドキュメンテーション

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

以前のバージョンとの互換性

MATLAB ソフトウェア Version 7.6 で導入されたクラス定義の新しい構文

MATLAB® のVersion 7.6 では、クラス定義の新しい構文を導入します。この新しい構文は、以下を含みます。

  • classdef キーワードは、クラス定義コードのブロックを開始します。end ステートメントによって、クラス定義は終了します。

  • classdef コード ブロック内で、propertiesmethodsevents は、個々のクラス メンバーを定義する位置を区別するキーワードにもなります。

クラス階層は混合不可能

Version 7.6 以前で定義されたクラスと classdef を使用する現在のクラス定義が混在するクラス階層を作成することはできません。したがって、新しいバージョンのクラスを作成するために以前のクラスをサブクラス化することはできません。

各クラスにつき 1 つだけの"@" クラス フォルダー

新しい classdef キーワードを使用して定義されたクラスでは、クラス フォルダーによって、MATLAB パス上でそれ以降にあるすべてのクラス フォルダーが隠されます。クラス フォルダー内で定義されるクラスでは、それぞれ単一のフォルダー内にすべてのクラス ファイルを格納しなければなりません。ただし、クラス フォルダーで定義されるクラスは引き続き同じ名前の関数やスクリプトよりも優先され、これは、そうした関数がパス上でクラスより前にある場合でも同じです。

プライベート メソッド

Version 7.6 のクラス フォルダーには、private フォルダーを定義する必要がありません。代わりに、メソッドの Access 属性を private に設定できます。

クラス コンストラクターの変更

クラス コンストラクターのメソッドには、2 つの主な違いがあります。クラス コンストラクターの特性は以下のとおりです。

  • 関数 class は使用しない。

  • スーパークラス コンストラクターを呼び出す必要がある (そのコンストラクターにユーザーが引数を渡す必要がある場合のみ)。そうでない場合、スーパークラス コンストラクターの呼び出しは必要ありません。

新旧構文の例

以下の 2 つの Stock コンストラクター メソッドを比較します。Stock クラスは、Asset クラスのサブクラスです。Asset クラスは、そのコンストラクターに渡される引数を必要とします。

Version 7.6 以前のコンストラクター関数

   function s = Stock(description,num_shares,share_price)
      s.NumShares = num_shares;
      s.SharePrice = share_price;
% Construct Asset object
      a = Asset(description,'stock',share_price*num_shares);
% Use the class function to define the stock object 
      s = class(s,'Stock',a);

ここに示されたクラス コンストラクターと同じ Stock クラス コンストラクターを記述します。継承は classdef 行で定義され、コンストラクターは methods ブロック内で定義されます。

Version 7.6 のコンストラクター関数

classdef Stock < Asset
   ...
   methods
 
      function s = Stock(description,num_shares,share_price)
% Call superclass constructor to pass arguments 
         s = s@Asset(description,'stock',share_price*num_shares);
         s.NumShares = num_shares;
         s.SharePrice = share_price;
      end % End of function
 
   end % End of methods block
end % End of classdef block

Version 7.6 で導入された新機能

新旧の例

MATLAB Version 7.6 でのクラスの実装には、それ以前のリリースとは異なる構文を使用します。ただし、古いバージョンで記述されたクラスも引き続き動作します。メソッドを実装するコードの大部分は、ユーザーが新機能を使用する場合を除き、同じになります。

以下の節では、最新の構文を使用して例を再び実装します。オリジナルの『MATLAB Classes and Objects』ドキュメンテーションでは、これらの同じクラスが実装され、新旧の構文の比較が記載されています。

多項式のクラス設計

単純なクラス階層

ポートフォリオに資産を含める

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