我有糟糕的編碼習慣,我從糟糕的代碼中挑選出來的,但是我正在嘗試解決這些問題。我的主要問題是試圖通過構造函數傳遞最初的參數,我沒有在Java中編寫一年的代碼,所以讓我知道一切都是錯誤的!將參數傳遞給構造函數
public class AccountHolder {
public static void main(String args[])
{
//Introduce scanner
Scanner sc = new Scanner(System.in); //Used to take input from user
System.out.println("Welcome to the bank program! Can you tell me your current balance?");
input = sc.nextDouble();
AccountHolder(input);
}
// Introduce private field members
private static double annualInterestRate; //Constant to hold annual interest rate
private static double fee; // Constant to hold the withdrawal fee
private double balance; // variable to hold the balance
private double rateUpdate; // variable to hold the value to update the rate
private static double input; // variable to hold user input
private double test; // variable to test whether or not user will drop below $100.
// introduce a DecimalFormat object
DecimalFormat twoPlace = new DecimalFormat("0.00"); // Used to keep values to 2 significant figures.
// Introduce public methods
public AccountHolder(double input)
{
balance = input;
}
public void deposit(double input)
{
balance = balance + input;
System.out.println("Your new balance is: $" + twoPlace.format(balance));
}
public void withdrawl(double input)
{
test = balance;
balance = balance - input;
if (balance < 100.0)
{
balance = balance + input;
System.out.println("Your balance is not allowed to drop below $100.00. Please try again when you have more funds.");
}
if (test >= 500 && balance < 500)
{
balance = balance - fee;
System.out.println("You have been charged an additional $50 for dropping below $500.00.");
}
System.out.println("Your new balance is: $" + twoPlace.format(balance));
}
public void monthlyInterest()
{
balance += balance * (annualInterestRate/12.0);
}
public static void modifyMonthlyInterest(double rateUpdate)
{
annualInterestRate = rateUpdate;
while (annualInterestRate <= 0 || annualInterestRate >= 1.0)
{
System.out.println("Error! Interest rates must be between 0 and 1. We need to keep our money!");
annualInterestRate = sc.nextDouble();
}
}
public String toString()
{
return String.format("$%.2f", balance);
}
}
您應該將此問題移至http://codereview.stackexchange.com/並更準確地說明您遇到的問題。 –