我不断收到错误“Money 类中的构造函数 Money 不能应用于给定类型;必需:无参数;找到 int、int;原因:实际参数列表和正式参数列表的长度不同”
另外这里是我将要评分的程序的目标列表,如果您发现我的代码中可能会遇到任何其他错误,请随时为我指出!
使用 BlueJ 创建具有两个整数实例变量、美元和美分的 Money 类。提供以下方法:
- 初始化实例变量的两参数构造函数。构造函数应该检查美分值是否在 0 和 99 之间,如果不是,则将一些美分转移到美元变量以使其介于 0 和 99 之间。
- 将美元初始化为 0 并将美分初始化为 1 的默认构造函数。它应该调用双参数构造函数。
- 一个参数构造函数,在将美元值设置为 0 的同时初始化美分值。此构造函数还应检查美分值是否在 0 和 99 之间,如果不是,则将一些美分转移到美元变量以使其介于 0 之间和 99。
- 美元和美分的存取器
- 标准 toString 方法
- 比较两个 Money 对象是否具有相同状态的标准 equals 方法。
- 将 Money 对象作为参数的 plus 方法。它创建并返回一个新的 Money 对象,该对象表示正在调用其 plus() 方法的对象和参数的总和。它不会修改两个现有对象的值。
最后,创建一个创建多个 Money 对象的 MoneyDemo 类。此演示类应测试您已实现的所有构造函数和方法。
这是我的代码:
public class Money
{
private int dollars, cents;
private static final int CENTS_PER_DOLLAR = 100;
public void checkMoney(int dollars, int cents)
{
while (cents<0)
{
cents += 100;
dollars--;
}
while (cents>99)
{
cents -= 100;
dollars++;
}
}
public Money()
{
this.cents = 1;
this.dollars = 0;
}
public void initializeCents(int cents)
{
while (cents<0)
{
cents += 100;
dollars--;
}
while (cents>99)
{
cents -= 100;
dollars++;
}
}
public int getDollars()
{
return dollars;
}
public int getCents()
{
return cents;
}
public String toString()
{
String str;
dollars = dollars + cents / CENTS_PER_DOLLAR;
cents = cents % CENTS_PER_DOLLAR;
str = "Your total amount is: " + "$" + dollars + "." + cents +"";
return str;
}
public Money plus(Money y)
{
return new Money(y.dollars, y.cents);
}
}
public class MoneyDemo
{
public static void main(String[] args)
{
int dollars = 5;
int cents = 80;
Money x = new Money( dollars, cents);
x.checkMoney();
dollars = 7;
cents = 70;
Money y = new Money( dollars, cents);
y.checkMoney();
USMoney z = x.plus(y);
System.out.println( "x: $" + x.dollars + "." + x.cents + "c");
System.out.println( "y: $" + y.dollars + "." + y.cents + "c");
System.out.println( "x.plus(y): $" + z.dollars + "." + z.cents + "c");
}
}