在Matlab中可以定义多个类构造函数吗?如果是,怎么办?
最佳答案
每个类都有一个构造函数。但是...构造函数可以接受任意数量和类型的参数,包括基于varargin
的参数。
因此,要提供Java中默认的第三个参数的选项,您可以编写类似以下内容(基于java documentation的示例):
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
public Bicycle(int startCadence, int startSpeed) {
gear = 1;
cadence = startCadence;
speed = startSpeed;
}
在Matlab中,您可以编写
classdef Bicycle < handle
properties (Access=public)
gear
cadence
speed
end
methods (Access = public)
function self = Bicycle(varargin)
if nargin>2
self.gear = varargin{3};
else
self.gear = 1;
end
self.cadence = varargin{1};
self.speed = varargin{2};
end
end
end
关于oop - 多类构造器Matlab,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10254269/