示例:
public class Person {
private String name;
public String getName(){
return name;
}
}
这会导致类似String name = person.getName();
的事情
这是直截了当的,我知道这是一个什么样的变量。
但是怎么样:
public class MovingObject{
private int mass;
public int getMass(){
return mass;
}
}
这会导致int massOfMovingobject = object.getMass();
问题:如何将代码添加到代码中,以便我真正知道我在处理什么?我应该将它命名为massInKg
,即使它看起来不太好吗?一个想法是将它添加到文档中,但是当它是一个类中的全局变量时呢?
答案 0 :(得分:3)
最简单的解决方案是将变量存储在一个单元中,该单元对于所有对象都是相同的,例如在Kilogram的情况下,然后添加方法来检索不同的单元:
public class MovingObject{
private int mass; //in KG
public int getMassinKG(){
return mass;
}
public int getMassinPound(){
//do the calculation
}
}
答案 1 :(得分:2)
最好不要使用变量名中的单位,除非它们用于转换。
作为指导原则:
所以在你的情况下,MovingObject应该使用'默认'单位系统,当你需要在GUI控件中显示它时,你可以说,例如。
SomeGuiControl.Value = UnitConverter.Kilo2Pounds(object.getMass());
答案 2 :(得分:1)
扩展Pooya建议的另一种方法,如果你想保持方法命名相同但使用参数来改变类型:
public class MovingObject{
private int mass; //in KG
private MassType defaultType;
public int getMass(){
return getMass(defaultType);
}
public int getMass(MassType type){
switch(type){
case Pound:
//Do calc
break;
default:
return mass;
}
}
}
public enum MassType{
KG,
Pound
}
答案 3 :(得分:0)
您可以单独返回数组而不是整数值。 你的数组将是这样的:
public HashMap getMass()
{
Map<String, String> map = new HashMap<int, String>();
map.put("mass", mass);
map.put("unit", unit);
return map;
}
答案 4 :(得分:0)
您可以构建一个群发对象,其中包含各种构造函数,可以容纳您需要的输入签名,然后提供计算对象单位转换的方法。
进一步扩展我们可以考虑动量和速度并创建一个牛顿对象。
单位转换是一个很好的基本例子,因为它在技术上是一个更加明智的转型。这里有一些代码。从@Pooya提供的开始。
public class MovingObject{
private double mass; //in KG
private double velocity; //in KG
public MovingObject(){
this.mass = 0;
this.velocity = 0;
}
public double getMassinKG(){
double mass = this.mass;
return mass;
}
public double getVelocityKG(){
double velocity = this.velocity;
return velocity;
}
public void setMassinKG(double s){
this.mass=s;
}
public void setVelocityKG(double s){
this.velocity=s;
}
public String momentum(){
return(String(this.mass*this.velocity)+"kg m/s");
}
public String massInPounds(){
return(String(this.mass*2.20462)+"pounds");
}
public String massInKilograms(){
return(String(this.mass)+"kilograms");
}
public String velocityInMetersPerSecond(){
return(String(this.velocity)+"meters per second");
}
public String velocityInFeetPerSecond(){
return(String(this.velocity*3.2808)+"feet per second");
}
}
请注意这里有几件事。首先使用名称get的方法将返回数据存储为类的成员。 setter也是将更新的成员值作为参数的空白。最后,格式化输出的方法可以根据您的需要命名。
快乐编程:)