Ich habe schreckliche Programmiergewohnheiten, die ich von schlechtem Code aufgefangen habe, aber ich arbeite daran, diese Probleme zu beheben. Mein Hauptproblem besteht darin, die ersten Argumente über den Konstruktor zu übergeben. Ich habe seit einem Jahr keine Java-Programmierung mehr, also lassen Sie mich wissen, was falsch ist!Übergeben von Argumenten an den Konstruktor
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);
}
}
sollten Sie diese Frage wahrscheinlich auf http://codereview.stackexchange.com/ verschieben und präziser sein, womit Sie Probleme haben. –