我不斷收到錯誤「構造函數Money類中的Money不能應用於給定類型; required:沒有參數;找到int,int; reason:實際和正式參數列表的長度不同」編譯器錯誤和貨幣類別分配
而且,這裏是我的了,我會進行分級的,如果你發現我的代碼中任何其他錯誤,我可能會碰到後請隨時指出它們對我的計劃目標列表!
使用BlueJ的創建帶有兩個整型實例變量,美元和美分Money類。 提供以下方法:
- 初始化實例變量的雙參數構造函數。構造函數 應檢查美分值是否在0到99之間,如果不是,則將一些 美分轉移到美元變量以使其在0和99之間。
- 將美元初始化爲0的默認構造函數以及美分爲1.它應該調用 的雙參數構造函數。
- 甲一個參數的構造,雖然 美元值設置爲0,此構造也應當檢查美分值在0和99之間 ,並且如果不是,一些毫傳送到元變量初始化美分值到 使其成爲美元和美分
- 標準的toString方法
- 標準等於如果兩個錢對象具有相同的 狀態比較方法介於0和99
- 訪問者。
- 將Money對象作爲其參數的加號方法。它創建並返回一個新的Money對象,它表示被調用的plus()方法爲 的對象與參數的總和。它不會修改兩個現有對象的值。
最後,創建創建多個貨幣對象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");
}
}
我建議改變無參數的構造函數的身體'這個(0,1);'。這樣,任何其他構造函數只需要添加到一個構造函數中。 –
感謝您的幫助,我添加了該行,並在閱讀完一段文字之後,現在可以瞭解這一點。然而,我現在在我的MoneyDemo類的x.checkMoney()行中得到了同樣的錯誤; 我沒有正確調用checkMoney方法?我很困惑,因爲我已經定義了美元和美分... – user1905170
你有類似的問題,你定義它爲'public void checkMoney(int dollars,int cents)'並且你把它叫做'm.checkMoney() '沒有任何參數 – Abubakkar