Programming with MATLAB | ![]() ![]() |
ポートフォリオコンストラクタメソッド
ポートフォリオコンストラクタメソッドは、入力引数としてクライアントの名前と可変長の資産サブクラスオブジェクト(この例題の中の株式、債券、貯蓄オブジェクト)のリストを使います。ポートフォリオオブジェクトは、つぎのフィールドをもつ構造体配列を使います。
name
- クライアントの名前ind_assets
- 資産サブクラスオブジェクト(株式、債券、貯蓄)の配列total_value
-
すべての資産のトータルの価値。コンストラクタは、引数として渡されるオブジェクトからこの価値を計算します。account_number
-
アカウント番号。このフィールドは、ポートフォリオオブジェクト("オブジェクトのセーブとロード"を参照)をセーブしたときのみ値を割り当てます。function p = portfolio(name,varargin) % PORTFOLIO クライアント名と投資リストを含む % ポートフォリオオブジェクトを作成 switch nargin case 0 % 入力引数がない場合、デフォルトオブジェクトが作成されます。 p.name = 'none'; p.total_value = 0; p.ind_assets = {}; p.account_number = ''; p = class(p,'portfolio'); case 1 % クラスポートフォリオの引数が一つの場合、それを出力します。 if isa(name,'portfolio') p = name; else disp([inputname(1) ' is not a portfolio object']) return end otherwise % 指定した引数を使って、オブジェクトを作成 p.name = name; p.total_value = 0; for i = 1:length(varargin) p.ind_assets(i) = {varargin{i}}; asset_value = get(p.ind_assets{i},'CurrentValue'); p.total_value = p.total_value + asset_value; end p.account_number = ''; p = class(p,'portfolio'); end
コンストラクタ呼び込み構文
ポートフォリオコンストラクタメソッドは、つぎの異なる三つの方法のいずれかで呼び込まれます。
isa
は、このケースに対するチェックです。isa
を使って引数がオブジェクトの正しいクラスか否かを決定する等のチェックを行います。
![]() |
例題:ポートフォリオコンテナ | ポートフォリオdisplayメソッド | ![]() |