| Programming with MATLAB |
資産コンストラクタメソッド
資産クラスは、つぎの四つのフィールドをもつ構造体配列をベースにしています。
descriptor - 特別な資産(たとえば、株式の名前、貯蓄勘定の番号等々)の識別子date - オブジェクトが作成された日時(date
コマンドで計算可能)type - 資産のタイプ (e.g., 貯蓄, bond, 株式)current_value - 資産の現在の価値(サブクラスデータから計算可能)この情報は、資産子オブジェクト(株式、債券、貯蓄勘定)に共通で、各子クラ スの中に同じフィールドを定義することを避けるために、親オブジェクトから取 り扱われます。これは、子クラスの数が増えると共に便利なものになります。
function a = asset(varargin)
% ASSET 資産オブジェクト用のコンストラクタ関数
% a = asset(descriptor, current_value)
switch nargin
case 0
% 入力引数がない場合、デフォルトオブジェクトを作成
a.descriptor = 'none';
a.date = date;
a.type = `none';
a.current_value = 0;
a = class(a,'asset');
case 1
% クラスassetの引数が単一の場合それを出力
if (isa(varargin{1},'asset'))
a = varargin{1};
else
error('Wrong argument type')
end
case 3
% 指定した値を使って、オブジェクトを作成
a.descriptor = varargin{1};
a.date = date;
a.type = varargin{2};
a.current_value = varargin{3};
a = class(a,'asset');
otherwise
error('Wrong number of input arguments')
end
関数は、三つの可能なシナリオをまとめて、switchステートメントを使っています。
資産コンストラクタメソッドは、直接呼ばれることはありません。すなわち、その目的が共通のデータに対するストレージを与えることなので、子コンストラクタから呼ばれます。
| 例題:資産と資産サブクラス | 資産getメソッド |