建立一个具有英制重量(石头,磅和盎司)的程序,我需要磅和盎司的范围(即0-15盎司),一旦盎司int超过15,则磅将增加1 ,磅的变化也相同,因此石头的增量为1。
我对Java还是很陌生,所以这对我来说是新手,我也不知道如何开始使用它。
public class NewWeight {
private int stones = 0;
private int pounds = 0;
private int ounces = 0;
public NewWeight (int stones, int pounds, int ounces) {
...
假设输入18盎司,则输出为1 pound and 2 ounces
,另一个示例为224盎司,因此输出最终为1 stone, 0 pounds, 0 ounces
答案 0 :(得分:3)
您不必在此处使用3个变量ounces
,pounds
和stones
。所有这三个代表一个数量-重量。
您可以仅以盎司为单位存储重量,而没有其他内容:
private int weightInOunces;
然后,您可以添加诸如getPounds
,getStones
和getOunces
等在weightInOunces
上进行数学运算的方法。
例如:
public int getPounds() {
return weightInOunces % 224 / 16;
}
public int getOunces() {
return weightInOunces % 16;
}
public int getStones() {
return weightInOunces / 224;
}
设置者可以这样实现:
public int setPounds(int pounds) {
int stones = getStones();
weightInOunces = stones * 244 + getOunces() + pounds * 16;
}
public int setOunces(int ounces) {
int pounds = getPounds();
weightInOunces = pounds * 16 + ounces;
}
public int setStones(int stones) {
weightInOunces = stones * 244 + weightInOunces % 244;
}
构造函数可以这样实现:
public Weight(int stones, int pounds, int ounces) {
weightInOunces = stones * 224 + pounds * 16 + ounces;
}
要获得输出,您还可以添加一个toString
方法,以x stones, x pounds, x ounces
格式输出权重。