J'ai de terribles habitudes de codage que j'ai récupérées à partir d'un mauvais code, mais je travaille pour essayer de résoudre ces problèmes. Mon principal problème est de passer les arguments initiaux à travers le constructeur, je n'ai pas codé en Java depuis un an, alors laissez-moi savoir tout ce qui ne va pas!Passer des arguments au constructeur
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);
}
}
vous devriez probablement déplacer cette question à http://codereview.stackexchange.com/ et être plus précis ce que vous avez des problèmes avec. –