问题及代码:
/*
*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还可以整体打包一个自定义的类~