如何通过Java将资金从一个银行帐户转移到另一个银行帐户?

时间:2016-11-08 01:51:11

标签: java string class

分配: 更改帐户类,以便可以将资金从一个帐户移动到另一个帐户。可以认为这是从一个账户中提取资金并将其存入另一个账户。更改Banking类的主要方法以显示此新服务。

我正在开设银行账户类,可以从银行账户余额中存取款。我正在处理分配的类部分,您声明驱动程序的所有方法。我的任务要求我制定一种方法,从一个帐户中提取资金并将这笔钱存入另一个帐户。我已经知道如何提款和存款,我只是不知道如何将钱从一个账户转到另一个账户。这是我到目前为止传输方法的代码:

import java.text.NumberFormat;
public class Account
{
    private NumberFormat fmt = NumberFormat.getCurrencyInstance();
    private final double RATE = 0.035; // interest rate of 3.5%
    private long acctNumber;
    private double balance;
    private String name;
    //-----------------------------------------------------------------
    // Sets up the account by defining its owner, account number,
    // and initial balance.
    //-----------------------------------------------------------------
    public Account (String owner, long account, double initial)
    {
        name = owner;
        acctNumber = account;
        balance = initial;
    }
    //-----------------------------------------------------------------
    // Validates the transaction, then deposits the specified amount
    // into the account. Returns the new balance.
    //-----------------------------------------------------------------
    public double deposit (double amount)
    {
        if (amount < 0) // deposit value is negative
        {
            System.out.println ();
            System.out.println ("Error: Deposit amount is invalid.");
            System.out.println (acctNumber + " " + fmt.format(amount));
        }
        else
            balance = balance + amount;
        return balance;
    }
    //-----------------------------------------------------------------
    // Validates the transaction, then withdraws the specified amount
    // from the account. Returns the new balance.
    //-----------------------------------------------------------------
    public double withdraw (double amount, double fee)
    {
        amount += fee;
        if (amount < 0) // withdraw value is negative
        {
        System.out.println ();
        System.out.println ("Error: Withdraw amount is invalid.");
        System.out.println ("Account: " + acctNumber);
        System.out.println ("Requested: " + fmt.format(amount));
        }
        else
        if (amount > balance) // withdraw value exceeds balance
        {
        System.out.println ();
        System.out.println ("Error: Insufficient funds.");
        System.out.println ("Account: " + acctNumber);
        System.out.println ("Requested: " + fmt.format(amount));
        System.out.println ("Available: " + fmt.format(balance));
        }
        else
        balance = balance - amount;
        return balance;
    }

    public double transfer (double amount, double fee)
    {
        amount += fee;
        if (amount < 0) // withdraw value is negative
        {
            System.out.println ();
            System.out.println ("Error: Withdraw amount is invalid.");
            System.out.println ("Account: " + acctNumber);
            System.out.println ("Requested: " + fmt.format(amount));
        }
        else
        if (amount > balance) // withdraw value exceeds balance
        {
            System.out.println ();
            System.out.println ("Error: Insufficient funds.");
            System.out.println ("Account: " + acctNumber);
            System.out.println ("Requested: " + fmt.format(amount));
            System.out.println ("Available: " + fmt.format(balance));
        }
        else
            balance = balance - amount;

         //What should I put here to deposit the amount into another account?

        if (amount < 0) // deposit value is negative
        {
            System.out.println ();
            System.out.println ("Error: Deposit amount is invalid.");
            System.out.println (acctNumber + " " + fmt.format(amount));
        }
        else
            balance = balance + amount;
    }

    //-----------------------------------------------------------------
    // Adds interest to the account and returns the new balance.
    //-----------------------------------------------------------------
    public double addInterest ()
    {
        balance += (balance * RATE);
        return balance;
    }
    //-----------------------------------------------------------------
    // Returns the current balance of the account.
    //-----------------------------------------------------------------
    public double getBalance ()
    {
        return balance;
    }
    //-----------------------------------------------------------------
    // Returns the account number.
    //-----------------------------------------------------------------
    public long getAccountNumber ()
    {
        return acctNumber;
    }
    //-----------------------------------------------------------------
    // Returns a one-line description of the account as a string.
    //-----------------------------------------------------------------
    public String toString ()
    {
        return (acctNumber + "\t" + name + "\t" + fmt.format(balance));
    }
}

2 个答案:

答案 0 :(得分:1)

您的转帐方式没有任何意义。 Tranfer应该是主类中实例化帐户的方法。转移的例子是。

public static void main(String[] args)
{
    // This creates two different accounts :)
    Account a = new Account("userA", 123, 200);
    Account b = new Account("userB", 234, 500);

    // Tranfer
    a.withdraw(100, 5);
    System.out.println(a.getBalance());
    b.deposit(100);
    System.out.println(b.getBalance());
}

并将其转换为方法

public static void transfer (Account from, Account to, double amount, double fee)
{
    from.withdraw(amount, fee);
    to.deposit(amount);
}

修改

如果我理解你的第二个问题,你想创建一个默认帐户吗?如果我误解了,你能提供更多细节吗? (链接到作业或其他东西)

你需要为它编写6种新方法,你还没有它们,

  1. getOwner
  2. setOwner
  3. getAcctNumber
  4. setAcctNumber
  5. 为getBalance
  6. 的setBalance
  7. 帐户CLass

    import java.text.NumberFormat;
    public class Account
    {
        private NumberFormat fmt = NumberFormat.getCurrencyInstance();
        private final double RATE = 0.035; // interest rate of 3.5%
        private long acctNumber;
        private double balance;
        private String name;
        //-----------------------------------------------------------------
        // Sets up the account by defining its owner, account number,
        // and initial balance.
        //-----------------------------------------------------------------
        public Account (String owner, long account, double initial)
        {
            name = owner;
            acctNumber = account;
            balance = initial;
        }
        public Account()
        {
            // This would be the default constructor and default account
            name ="N/A";
            acctNumber = 0;
            balance = 0.0;
        }
    
        //-----------------------------------------------------------------
        // Validates the transaction, then deposits the specified amount
        // into the account. Returns the new balance.
        //-----------------------------------------------------------------
        public double deposit (double amount)
        {
            if (amount < 0) // deposit value is negative
            {
                System.out.println ();
                System.out.println ("Error: Deposit amount is invalid.");
                System.out.println (acctNumber + " " + fmt.format(amount));
            }
            else
                balance = balance + amount;
            return balance;
        }
        //-----------------------------------------------------------------
        // Validates the transaction, then withdraws the specified amount
        // from the account. Returns the new balance.
        //-----------------------------------------------------------------
        public double withdraw (double amount, double fee)
        {
            amount += fee;
            if (amount < 0) // withdraw value is negative
            {
            System.out.println ();
            System.out.println ("Error: Withdraw amount is invalid.");
            System.out.println ("Account: " + acctNumber);
            System.out.println ("Requested: " + fmt.format(amount));
            }
            else
            if (amount > balance) // withdraw value exceeds balance
            {
            System.out.println ();
            System.out.println ("Error: Insufficient funds.");
            System.out.println ("Account: " + acctNumber);
            System.out.println ("Requested: " + fmt.format(amount));
            System.out.println ("Available: " + fmt.format(balance));
            }
            else
            balance = balance - amount;
            return balance;
        }
    
        //-----------------------------------------------------------------
        // Adds interest to the account and returns the new balance.
        //-----------------------------------------------------------------
        public double addInterest ()
        {
            balance += (balance * RATE);
            return balance;
        }
        //-----------------------------------------------------------------
        // Returns the current balance of the account.
        //-----------------------------------------------------------------
        public double getBalance ()
        {
            return balance;
        }
        //-----------------------------------------------------------------
        // Returns the account number.
        //-----------------------------------------------------------------
        public long getAccountNumber ()
        {
            return acctNumber;
        }
        //-----------------------------------------------------------------
        // Returns a one-line description of the account as a string.
        //-----------------------------------------------------------------
        public String toString ()
        {
            return (acctNumber + "\t" + name + "\t" + fmt.format(balance));
        }
    }
    

    Drvier Class

    public class test
    {
        public static void main(String[] args)
        {
            // Created here
            Account defaultAccount = new Account();
            Account a = new Account("userA", 123, 200);
            Account b = new Account("userB", 234, 500);
    
            System.out.println(defaultAccount.getBalance());
            // Tranfer
            a.withdraw(100, 5);
            System.out.println(a.getBalance());
            b.deposit(100);
            System.out.println(b.getBalance());
        }
    
        public static void transfer (Account from, Account to, double amount, double fee)
        {
            from.withdraw(amount, fee);
            to.deposit(amount);
        }
    }
    

答案 1 :(得分:0)

创建一种方法transfer(字符串ID,双倍金额),该方法利用deposit(字符串ID,双倍amt)和提款(双倍金额)方法来转移资金。