【发布时间】:2017-02-08 23:47:36
【问题描述】:
在下面的课程中
classdef ClassCar
properties (Constant)
% Car phyisical properties
m = 1630; % [kg]
R_rim = 14*.0254; % [m]
e_tire = .175*.55; % [m]
R_e = ClassCar.R_rim + ClassCar.e_tire; % <= HERE
% Car transmission properties
gearRatios = [3.154 1.925 1.281 .951 .756];
finalDrive = 3.05; %Rapport de differentiel
overallRatios = ClassCar.gearRatios * ClassCar.finalDrive;% <= HERE
end
end
我想拥有依赖于其他属性的组合属性(作为快捷方式)。 IE。从实例化对象中检索 (car = ClassCar)
car.R_e
或
car.overallRatios
问题是 R_e 是 R_rim 和 e_tire 的函数。 使用(常量)属性,它可以工作,但问题是我想要这些属性不是常量,并且简单地删除关键字会导致问题。
然后我尝试在方法的帮助下做到这一点
classdef ClassCar
properties
% Car phyisical properties
m = 1630; % [kg]
R_rim = 14*.0254; % [m]
e_tire = .175*.55; % [m]
% Car transmission properties
gearRatios = [3.154 1.925 1.281 .951 .756];
finalDrive = 3.05; %Rapport de differentiel
end
methods (Static)
function value = R_e()
value = R_rim + e_tire; % <= HERE
end
function value = overallRatios()
value = gearRatios * finalDrive;
end
end
end
但即使使用关键字(静态)作为方法,我也会收到 错误消息“未定义的函数或变量 'R_rim'。”我尝试输入 self.R_rim、ClassCar.R_rim,但没有成功。
如何实现?这是最好的方法吗?如果是这样,如何访问对象的属性(比如 self.value)?
谢谢。
【问题讨论】:
标签: matlab class oop properties