第10周-银行类-ArrayList

本文详细介绍了使用Java实现类(Account)和对象操作的实践案例,包括类的继承、属性设置、方法实现以及ArrayList的运用。通过实例展示了如何创建Account对象并进行存款、取款等操作,同时演示了如何使用ArrayList存储对象的交易记录,并输出相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题及代码:

/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:Account.java
*作    者:单昕昕
*完成日期:2015年11月3日
*版 本 号:v1.0
*问题描述:建立类,继承类。
*程序输入:无。
*程序输出:无。
*/
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.*;

public class Test
{
    public static void main(String[] args)
    {
        Account account = new Account("George", 1122, 1000.00);
        account.deposit(30);
        account.deposit(40);
        account.deposit(50);
        account.withdraw(5);
        account.withdraw(4);
        account.withdraw(2);
        Account.setRate(0.015);
        System.out.println("Name: " + account.getName());
        System.out.println("Annual interest rate: " + Account.getRate());
        System.out.println("Balance: " + account.getBalance());
        java.util.ArrayList list = account.getTransactions();
        System.out.printf("%-35s%-15s%-15s%-15s\n", "             Date", "Type", "Amount", "Balance");
        for (int i=0; i<list.size(); i++)
        {
            Transaction transaction = (Transaction)(list.get(i));
            System.out.printf("%-35s%-15s%-15s%-15s\n", transaction.getDate(),
                              transaction.getMethod(), transaction.getAmount(), transaction.getBalance());
        }
    }
}
class Account
{
    private String name;
    private int id;
    private double balance;
    private Date created;
    private java.util.ArrayList transactions = new java.util.ArrayList();
    private static double rate;

    public static void setRate(double rate)
    {
        Account.rate = rate;
    }
    public static double getRate()
    {
        return rate;
    }
    public String toString()
    {
        return "Account";
    }
    public Account (String name, int id, double balance)
    {
        this.name = name;
        this.id = id;
        this.balance = balance;
    }
    public void withdraw(double amount)
    {
        balance -= amount;
        transactions.add(new Transaction("Withdraw", amount, balance));
    }

    public void deposit(double amount)
    {
        balance += amount;
        transactions.add(new Transaction("Deposit", amount, balance));
    }
    public int getId()
    {
        return this.id;
    }

    public double getBalance()
    {
        return balance;
    }

    public java.util.ArrayList getTransactions()
    {
        return transactions;
    }

    public String getName()
    {
        return name;
    }

    public void setId(int id)
    {
        this.id =id;
    }

    public void setBalance(double balance)
    {
        this.balance = balance;
    }

    public static void setAnnualInterestRate(double annualInterestRate)
    {
        Account.rate = annualInterestRate;
    }

    public double getMonthlyInterest()
    {
        return balance * (rate / 1200);
    }
}
class Date
{
    private java.util.Date date ;
    public java.util.Date getDate()
    {
        date = new java.util.Date();
        return date;
    }
}
class Transaction
{
    private String method;
    private double amount;
    private double balance;
    private java.util.Date date;
    boolean leftMoney;
    public String toString()
    {
        return "SavingsAccount";
    }

    public java.util.Date getDate()
    {
        return date;
    }
    public Transaction (String method, double amount, double balance)
    {
        this.method = method;
        this.amount = amount;
        this.balance = balance;
        date = new java.util.Date();//这里记得也要写
    }
    public String getMethod()
    {
        return method;
    }

    public double getAmount()
    {
        return amount;
    }

    public double getBalance()
    {
        return balance;
    }
}

运行结果:



知识点总结:

ArrayList类。


学习心得:

类和对象我还是有点生,ArrayList还可以整体打包一个自定义的类~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值