【发布时间】:2015-11-30 20:46:38
【问题描述】:
我有一个句柄类,即下面的mclass,它应该在另一个具有相应输入参数的函数中构造。但是,我想在类本身的任何地方的构造函数中检查类构造函数的输入参数,并防止在输入不是所需类型时创建新的对象句柄。
classdef mclass < handle
properties
val
end
properties (Dependent)
sval
end
methods
function obj = mclass(varargin)
if nargin == 1
if isnumeric(varargin{1}) && varargin{1} > 0
obj.val = varargin{1};
else
errordlg('Invalid input', 'Constructor', 'modal');
end
else
errordlg('No input', 'Constructor', 'modal');
end
end
function s = get.sval(obj)
s = sqrt(obj.val);
end
end
end
但是,在命令行窗口调用m = mclass; 或m = mclass(0); 后,连同错误对话框,变量m 仍然在工作区中创建。如何防止创建m?
当然我可以在调用构造函数之前检查我的其他函数中的输入,但是无论如何让它成为类的“自检”特性?
【问题讨论】:
标签: matlab oop matlab-class