Java 为什么我的构造器中充满了它的东西;不应该';";

Java 为什么我的构造器中充满了它的东西;不应该';";,java,Java,首先,我为这个宽泛的标题感到抱歉,我不确定该如何表达它。无论如何,我正在制作一个银行程序,允许多人拥有多个账户。然而,每当一个新人做了一个帐户,它就会把这个帐户添加到其他人身上,这就是原因。我已经尝试了我能想到的一切,但没有运气。我知道可能不需要manage类,但这是我试图解决问题的方法之一。另外,最后两门课是关于支票和储蓄账户的,我会在解决这个问题后完成。 任何帮助都将被告知:) import java.util.ArrayList; 导入javax.swing.*; 类库实现了可比性{ 私人

首先,我为这个宽泛的标题感到抱歉,我不确定该如何表达它。无论如何,我正在制作一个银行程序,允许多人拥有多个账户。然而,每当一个新人做了一个帐户,它就会把这个帐户添加到其他人身上,这就是原因。我已经尝试了我能想到的一切,但没有运气。我知道可能不需要manage类,但这是我试图解决问题的方法之一。另外,最后两门课是关于支票和储蓄账户的,我会在解决这个问题后完成。 任何帮助都将被告知:)

import java.util.ArrayList;
导入javax.swing.*;
类库实现了可比性{
私人双bal;
私人国际帐户号码;
私有字符串accountName;
公共银行(){
}
无效显示_详细信息(){
System.out.println(“账号:“+accountNumber”);
System.out.println(“账户余额:+bal+”\n\n);
JOptionPane.showMessageDialog(null,
“科目名称:”+accountName+“\n科目编号:”+accountNumber+“\n科目余额:”+bal,
“您拥有”+FinancialFolk.Bank.size()+“账户”;
}
公共无效存款(双倍存款金额){
余额+=存款金额;
showMessageDialog(null,“您的新余额为:$”+bal);
}
公开作废取款(双倍取款金额){
如果(取款金额>余额){
showMessageDialog(null,“资金不足”);
}否则{
余额-=提款金额;
showMessageDialog(null,“您的新余额为:$”+bal);
}
}
公开转让{
}
@凌驾
公共整数比较对象(对象arg0){
//TODO自动生成的方法存根
返回0;
}
公共双getBal(){
返回bal;
}
公共无效回退(双倍余额){
bal=bal;
}
public int getAccountNumber(){
返回帐号;
}
公共无效setAccountNumber(int AccountNumber){
accountNumber=accountNumber;
}
公共字符串getAccountName(){
返回帐户名;
}
/**
*@param accountName要设置的accountName
*/
public void setAccountName(字符串accountName){
this.accountName=accountName;
}
}
类FinancialFolk实现密码验证{
私有字符串accountUsername、accountHolderName、accountPassword;
受保护的ArrayList帐户=新建ArrayList();
受保护的静态ArrayList Bank=新ArrayList();
私人时间;
public FinancialFolk(字符串用户名、字符串名称、字符串密码){
accountUsername=用户名;
accountHolderName=名称;
accountPassword=密码;
}
公共财政{
accountUsername=“”;
accountHolderName=“”;
accountPassword=“”;
}
公共无效密码创建(){
accountPassword=JOptionPane.showInputDialog(“请为您的帐户选择安全密码”);
}
公共布尔密码验证(字符串尝试密码){
返回accountPassword.equals(attemptedPassword);
}
公共布尔值createNewPerson(){//创建一个新的FinancialFolk。
accountHolderName=(JOptionPane.showInputDialog(“请输入您的姓名”);
如果(accountHolderName==null)
返回false;
字符串Username=(JOptionPane.showInputDialog(“请为您的帐户输入用户名”);
(金融福尔克fk:银行){
如果(fk.getAccountUsername().equals(Username)){
showMessageDialog(null,“已使用该用户名!”);
返回false;
}
}
accountUsername=用户名;
密码创建();
返回true;
}
public void createNewAccount(){//将帐户添加到现有的FinancialFolk。
银行支票=新支票();
银行储蓄=新储蓄();
字符串[]按钮={“检查”,“节省”};
int acc=JOptionPane.showOptionDialog(空,“您想开立什么类型的账户?”,“银行”,
JOptionPane.PLAIN_消息,1,null,按钮,按钮[1]);
开关(acc){
案例0:
check.setAccountName((JOptionPane.showInputDialog(“请输入此帐户的名称”));
check.setAccountNumber((int)(Math.random()*3000+1091));
账户。添加(检查);
选中。显示_详细信息();
打破
案例1:
save.setAccountName((JOptionPane.showInputDialog(“请输入此帐户的名称”));
save.setAccountNumber((int)(Math.random()*3310+789));
账户。添加(保存);
保存。显示_详细信息();
打破
}
}
公共静态void main(字符串[]args){
银行用户=新银行();
FinancialFolk FF=新的FinancialFolk();
布尔退出=假;
做{
String[]按钮={“第一次创建帐户”、“登录”、“退出银行”和“};
int rc=JOptionPane.showOptionDialog(空,“您想做什么?”,“银行”,JOptionPane.PLAIN_消息,
3,空,按钮,按钮[3]);
开关(rc){
案例0://创建帐户
if(FF.createNewPerson()){
银行。添加(FF);
Bank.get(Bank.size()-1.createNewAccount();
}
打破
案例1://登录
布尔注销=假;
布尔incun=true;
String an=JOptionPane.showInputDialog(“输入用户名。\n”);
字符串ps=JOptionPane.showInputDialog(“输入您的帐户密码。\n”);
(金融工具x:银行){
如果(x.getAccountUsername().equals(an)){
Incn=假;
如果(x.passwordVerify(ps)){
做{
字符串[]按钮2={“查看所有帐户”,“存入帐户”,
“从您的帐户中提取”、“更改密码”、“创建另一个银行帐户”,
“注销”};
int rc2=JOptionPane.showOptionDialog(null,“您想做什么?”,“银行”,
import java.util.ArrayList;
import javax.swing.*;

class Bank implements Comparable {

private double bal;
private int accountNumber;
private String accountName;

public Bank() {
}

void display_details() {
    System.out.println("Account Number : " + accountNumber);
    System.out.println("Account Balance : " + bal + "\n\n\n");
    JOptionPane.showMessageDialog(null,
            "Account Name:" + accountName + "\nAccount Number : " + accountNumber + "\nAccount Balance : " + bal,
            "You own " + FinancialFolk.Bank.size() + " account[s]", JOptionPane.INFORMATION_MESSAGE);
}

public void deposit(double depositAmount) {
    bal += depositAmount;
    JOptionPane.showMessageDialog(null, "Your new balance is: $" + bal);
}

public void withdraw(double withdrawAmount) {
    if (withdrawAmount > bal) {
        JOptionPane.showMessageDialog(null, "Insufficient Funds");
    } else {
        bal -= withdrawAmount;
        JOptionPane.showMessageDialog(null, "Your new balance is: $" + bal);
    }
}

public void transfer() {

}

@Override
public int compareTo(Object arg0) {
    // TODO Auto-generated method stub
    return 0;
}

public double getBal() {
    return bal;
}

public void setBal(double baL) {
    bal = baL;
}

public int getAccountNumber() {
    return accountNumber;
}

public void setAccountNumber(int accountNumbe) {
    accountNumber = accountNumbe;
}

public String getAccountName() {
    return accountName;
}

/**
 * @param accountName the accountName to set
 */
public void setAccountName(String accountName) {
    this.accountName = accountName;
}

}

class FinancialFolk implements PasswordVerifivation {
private String accountUsername, accountHolderName, accountPassword;
protected ArrayList<Bank> accounts = new ArrayList<>();
protected static ArrayList<FinancialFolk> Bank = new ArrayList<>();
private int memberTime;

public FinancialFolk(String username, String name, String password) {
    accountUsername = username;
    accountHolderName = name;
    accountPassword = password;
}

public FinancialFolk() {
    accountUsername = "";
    accountHolderName = "";
    accountPassword = "";
}

public void passwordCreation() {
    accountPassword = JOptionPane.showInputDialog("Please choose a secure password for your account.");
}

public boolean passwordVerify(String attemptedPassword) {
    return accountPassword.equals(attemptedPassword);

}

public boolean createNewPerson() { // Creates a new FinancialFolk.
    accountHolderName = (JOptionPane.showInputDialog("Please enter your name."));
    if (accountHolderName == null)
        return false;
    String Username = (JOptionPane.showInputDialog("Please enter a username for your account."));
    for (FinancialFolk fk : Bank) {
        if (fk.getAccountUsername().equals(Username)) {
            JOptionPane.showMessageDialog(null, "That username is taken!");
            return false;
        }
    }
    accountUsername = Username;
    passwordCreation();
    return true;
}

public void createNewAccount() { // Adds an account to an existing FinancialFolk.
    Bank check = new Checking();
    Bank save = new Savings();
    String[] buttons = { "Checking", "Savings" };
    int acc = JOptionPane.showOptionDialog(null, "What type of account would you like to make?", "Bank",
            JOptionPane.PLAIN_MESSAGE, 1, null, buttons, buttons[1]);
    switch (acc) {
    case 0:
        check.setAccountName((JOptionPane.showInputDialog("Please enter a name for this account.")));
        check.setAccountNumber((int) (Math.random() * 3000 + 1091));
        accounts.add(check);
        check.display_details();
        break;
    case 1:
        save.setAccountName((JOptionPane.showInputDialog("Please enter a name for this account.")));
        save.setAccountNumber((int) (Math.random() * 3310 + 789));
        accounts.add(save);
        save.display_details();
        break;
    }
}

public static void main(String[] args) {
    Bank user = new Bank();
    FinancialFolk FF = new FinancialFolk();
    boolean exit = false;
    do {
        String[] buttons = { "Create Account For The First Time", "Login", "Exit Bank", "" };
        int rc = JOptionPane.showOptionDialog(null, "What would you like to do?", "Bank", JOptionPane.PLAIN_MESSAGE,
                3, null, buttons, buttons[3]);
        switch (rc) {
        case 0: // create account
            if (FF.createNewPerson()) {
                Bank.add(FF);
                Bank.get(Bank.size() - 1).createNewAccount();
            }
            break;
        case 1: // login
            boolean logout = false;
            boolean incun = true;

            String an = JOptionPane.showInputDialog("Enter your username.\n");
            String ps = JOptionPane.showInputDialog("Enter your acccount password.\n");
            for (FinancialFolk x : Bank) {
                if (x.getAccountUsername().equals(an)) {
                    incun = false;
                    if (x.passwordVerify(ps)) {
                        do {
                            String[] buttons2 = { "View all accounts.", "Deposit into an account",
                                    "Withdraw from your account", "Change password", "Create another bank account",
                                    "Logout" };
                            int rc2 = JOptionPane.showOptionDialog(null, "What would you like to do?", "Bank",
                                    JOptionPane.PLAIN_MESSAGE, 3, null, buttons2, buttons2[4]);
                            switch (rc2) {
                            case 0: // all accounts
                                int networth = 0;
                                for (Bank acct : FF.accounts) {
                                    acct.display_details();
                                    networth += acct.getBal();
                                }
                                JOptionPane.showMessageDialog(null,
                                        "Your account total between all accounts: $" + networth);
                                break;
                            case 1: { // deposit
                                if (x.accounts.size() == 0)
                                    JOptionPane.showMessageDialog(null, "You do not have any accounts!");
                                else if (x.accounts.size() == 1) {
                                    x.accounts.get(0).deposit(Integer.parseInt(JOptionPane
                                            .showInputDialog("Enter how many dollars you want to deposit.\n")));
                                } else {
                                    JOptionPane.showMessageDialog(null, x.accounts.size());
                                    String a = (JOptionPane
                                            .showInputDialog("Enter the account name to deposit into.\n"));
                                    for (Bank act : x.accounts) {
                                        if (act.getAccountName().equalsIgnoreCase(a))
                                            act.deposit(Integer.parseInt(JOptionPane.showInputDialog(
                                                    "Enter how many dollars you want to deposit.\n")));
                                    }
                                }
                            }
                                break;
                            case 2:
                                if (x.accounts.size() == 0)
                                    JOptionPane.showMessageDialog(null, "You do not have any accounts!");
                                else if (x.accounts.size() == 1) {
                                    x.accounts.get(0).withdraw(Integer.parseInt(JOptionPane
                                            .showInputDialog("Enter how many dollars you want to withdraw.\n")));
                                } else {
                                    String a = (JOptionPane
                                            .showInputDialog("Enter the account name to withdraw from.\n"));
                                    for (Bank act : x.accounts) {
                                        if (act.getAccountName().equalsIgnoreCase(a))
                                            act.deposit(Integer.parseInt(JOptionPane.showInputDialog(
                                                    "Enter how many dollars you want to withdraw.\n")));
                                    }
                                }
                                break;
                            case 3:
                                x.passwordSet((JOptionPane.showInputDialog("Enter your new password.\n")));
                                break;
                            case 4:
                                x.createNewAccount();
                                break;
                            case 5:
                                logout = true;
                                break;
                            }
                        } while (!logout);
                    } else
                        incun = true;
                }
            }
            if (incun)
                JOptionPane.showMessageDialog(null, "Invalid Username or password");
            break;
        case 2:
            JOptionPane.showMessageDialog(null, "Thank you for using the JacoBank");
            exit = true;
            break;
        case 3:
            System.out.print(Bank.size());
            System.out.print(FF.accounts.size());
            break;

        }
    } while (!exit);
}

public String getAccountHolderName() {
    return accountHolderName;
}

public void setAccountHolderName(String accountHolderName) {
    this.accountHolderName = accountHolderName;
}

public String getAccountUsername() {
    return accountUsername;
}

@Override
public void passwordSet(String password) {
    accountPassword = password;

}
}

class Manage {

}

class Checking extends Bank {
private int checkCount;
}

class Savings extends Bank {
}
protected static ArrayList<Bank> accounts = new ArrayList<>();