任何改善foll的方法。代码块:
public class MyUnits {
public static String MILLSECONDS = "milliseconds";
public static String SECONDS = "seconds";
public static String MINUTES = "minutes";
public static String HOURS = "hours";
public int quantity;
public String units;
public MyUnits(int quantity, String units) {
this.quantity = quantity;
this.units = units;
}
public String toString() {
return (quantity + " " + units);
}
// Test code
public static void main(String[] args) {
System.out.println(new MyUnits(1, MyUnits.MILLSECONDS));
System.out.println(new MyUnits(2, MyUnits.SECONDS));
System.out.println(new MyUnits(3, MyUnits.MINUTES));
System.out.println(new MyUnits(4, MyUnits.HOURS));
}
}
任何帮助将不胜感激。
答案 0 :(得分:3)
静态整数应该是最终的。 Java中“常量”的常用修饰符是
public static final <Type> <name> = <value>;
更大的增强功能:将静态int与enum交换:
public enum Unit {MILLISECOND, SECOND, MINUTE, HOUR}
新的构造函数签名将是:
public MyUnits(int quantity, Unit unit) { ... }
MyUnit中的非静态字段应该是私有的。添加getter / setter方法以进行访问。
最后(仅限严肃的代码),我将测试代码与类分开。查看测试框架,例如junit
并实现单独的测试类。
答案 1 :(得分:1)
标记您的public static
个变量
作为final
;更好的是,使用枚举。
不要让实例变量(quantity
,units
)为public
。提供“getter”方法来读取它们的值。考虑不提供“setter”方法来更改其值。这使得你的类不可变,这可以使它更容易使用(不可变对象的状态比可变对象的状态更可预测!)
更具体的代码是什么 打算这样做;然后做它 那。 (这也可以让你问 更具体的问题,哪些会 给你更好的答案。)
添加评论,尤其是javadoc comments。
答案 2 :(得分:0)
在班级中使用enum。
public enum MyUnit {
MILLSECONDS(1, "milliseconds"), SECOND(2, "seconds"),
MINUTES(3,"minutes"), HOURS(4, "hours");
private MyUnit(int quantity, String units) {
this.quantity = quantity;
this.units = units;
}
private int quantity;
private String units;
public String toString() {
return (quantity + " " + units);
}
/*getters setters*/
}
然后就这样打电话
MyUnit.HOURS.getUnits();
MyUnit.HOURS.getCuantity();
答案 3 :(得分:0)
添加clone(),hashcode()和equals(),并实现Comparable,Serializable和Cloneable。
删除测试代码并将其移至测试类。使用JUnit进行测试。
写一个函数public Date addToDate(Date date)
。