Pur*_*uit 28
每个类都有一个构造函数.但是......构造函数可以接受任何数量和类型的参数,包括基于的参数varargin
.
因此,要在Java中提供默认第三个参数的选项,您可以编写类似这样的内容(基于java文档的示例):
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;
}
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
Pursuit 的答案是有效的,但是不熟悉该函数的用户无法看到需要多少个参数或它们的用途。我会推荐这个:
methods (Access = public)
function self = Bicycle(startCadence, startSpeed, startGear)
if nargin>2
self.gear = startGear;
else
self.gear = 1;
end
self.cadence = startCadence;
self.speed = startSpeed;
end
end
Run Code Online (Sandbox Code Playgroud)
如果你现在输入“Bicycle(”并等待,你至少可以看到三个参数。虽然第二种可能性没有显示。这似乎是可能的(例如对于情节),但我不知道如何做到这一点。
归档时间: |
|
查看次数: |
14201 次 |
最近记录: |