| Programming with MATLAB |
loadobjメソッド
MATLABは、loadコマンドがロードされる.matファイルの中のポートフォリオオブジェクトを調べるときに、ポートフォリオloadobj
メソッドを探します。loadobj が存在する場合、MATLABは、ポートフォリオオブジェクトをloadobj
に渡し、一つの出力引数として変更されたオブジェクトを戻すはずです。出力引数は、ワークスペースの中にロードされます。
入力オブジェクトが、コンストラクタ関数により設定されたものと現在の定義が 一致しない場合、MATLABは、それを、同じフィールドとすべての値をそのまま そっくりもつオブジェクトの構造体を含む一つの構造体に変換します(ここでは、 構造体をもつことになり、オブジェクトをもつのではありません)。
loadobjのつぎの実現は、まず、入力引数がポートフォリオオブジェクトかまたは構造体のどちらかを決定するために、関数isaを使います。入力がオブジェクトならば、変更は必要ないので、そのまま、何もしないで戻すだけです。入力引数がMATLABに依って構造体に変換されていると、新しいaccount_numberフィールドが構造体に加えられ、更新されたポートフォリオオブジェクトを作成するために使われます。
function b = loadobj(a)
% ポートフォリオクラス用のloadobj
if isa(a,'portfolio')
b = a;
else % a is an old version
a.account_number = getAccountNumber(a);
b = class(a,'portfolio');
end
| saveobjメソッド | ポートフォリオコンストラクタの変更 |