建立一个具有英制重量(石头,磅和盎司)的程序,我需要磅和盎司的范围(即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
最佳答案
您不必在此处使用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
格式输出重量。