码迷,mamicode.com
首页 > 其他好文 > 详细

0925-----homework

时间:2016-09-25 22:20:59      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

  1 /**
  2   *
  3   */
  4 package com.kai.li.bank;
  5 import java.util.List;
  6 import java.util.ArrayList;
  7 /**
  8   *
  9   */
 10 public class BankText{
 11     /**
 12        *
 13        */
 14     public static void main(String[] args){
 15         Account a1=new Account(500.00);        //
 16         try{
 17             a1.withdraw(650.00);        //
 18         }catch(OverdraftException o){
 19         }
 20         a1.deposit(22.50);            //
 21         try{
 22             a1.withdraw(47.62);        //
 23         }catch(OverdraftException o){
 24             o.printStackTrace();        //
 25         }
 26         System.out.println("The account has a balance of "+a1.getBalance());
 27     }
 28 }
 29 /**
 30   *
 31   */
 32 class Account{
 33     /**
 34        *
 35        */
 36     protected double balance;
 37     /**
 38        *
 39        */
 40     Account(double balance){
 41         this.balance=balance;
 42     }
 43     /**
 44        *
 45        */
 46     public double getBalance(){
 47         return this.balance;
 48     }
 49     /**
 50        *
 51        */
 52     public boolean deposit(double amt){
 53         if(amt<0)
 54             return false;
 55         this.balance+=amt;
 56         return true;
 57     }
 58     /**
 59        *
 60        */
 61     public void withdraw(double amt)throws OverdraftException{
 62         if(amt>balance)
 63             throw new OverdraftException("Balance is not enough! ---",amt-balance );
 64         this.balance-=amt;
 65     }
 66 }
 67 /**
 68   *
 69   */
 70 class Customer{
 71     /**
 72        *
 73        */
 74     private String firstName;
 75     private String lastName;
 76     private Account account;
 77     /**
 78        *
 79        */
 80     Customer(String firstName,String lastName){
 81         this.firstName=firstName;
 82         this.lastName=lastName;
 83     }
 84     public String getFirstName(){
 85         return this.firstName;
 86     }
 87     public String getLastName(){
 88         return this.lastName;
 89     }
 90     public void setAccount(Account account){
 91         this.account=account;
 92     }
 93     public Account getAccount(){
 94         return this.account;
 95     }
 96     @Override
 97     public String toString(){
 98         return this.getLastName()+" "+this.getFirstName();
 99     }
100 }
101 /**
102   *
103   */
104 class Bank{
105     /**
106        *
107        */
108     private final static Bank bank=new Bank();
109     private Customer[] customers;
110     private int numberOfCustomers;
111     /**
112        *
113        */
114     private Bank(){
115         customers=new Customer[6];
116     }
117     /**
118        *
119        */
120     public static Bank getBank(){
121         return bank;
122     }
123     public int getNumberOfCustomers(){
124         return this.numberOfCustomers;
125     }
126     public Customer getCustomer(int i){
127         if(i>=numberOfCustomers){
128             System.out.println("Number is wrong!");
129             return null;
130         }
131         return this.customers[i];
132     }
133     public void addCustomer(String firstName,String lastName){
134         this.customers[numberOfCustomers]=new Customer(firstName,lastName);
135         numberOfCustomers+=1;
136     }
137 }
138 /**
139   *
140   */
141 class ListBank{
142     /**
143        *
144        */
145     private List<Customer> customers;
146     private int numberOfCustomers;
147     /**
148        *
149        */
150     public ListBank(){
151         customers=new ArrayList<>();
152     }
153     public int getNumberOfCustomers(){
154         return this.numberOfCustomers;
155     }
156     public Customer getCustomer(int i){
157         if(i>=numberOfCustomers){
158             System.out.println("Number is wrong!");
159             return null;
160         }
161         return this.customers.get(i);
162     }
163     public void addCustomer(String firstName,String lastName){
164         customers.add(new Customer(firstName,lastName));
165         numberOfCustomers=customers.size();
166     }
167 }
168 /**
169   *
170   */
171 class SavingsAccount extends Account{
172     /**
173        *
174        */
175     private double interestRate;
176     /**
177        *
178        */
179     SavingsAccount(double balance,double interestRate){
180         super(balance);
181         this.interestRate=interestRate;
182     }
183     /**
184        *
185        */
186     public double getInterestRate(){
187         return this.interestRate;
188     }
189 }
190 /**
191   *
192   */
193 class CheckingAccount extends Account{
194     /**
195        *
196        */
197     private double overdraftProtection;
198     /**
199        *
200        */
201     CheckingAccount(double balance){
202         super(balance);
203     }
204     /**
205        *
206        */
207     CheckingAccount(double balance,double overdraftProtection){
208         this(balance);
209         this.overdraftProtection=overdraftProtection;
210     }
211     /**
212        *
213        */
214     public double getOverdraftProtection(){
215         return this.overdraftProtection;
216     }
217     /**
218        *
219        */
220     @Override
221     public void withdraw(double amount)throws OverdraftException{
222         if(balance >=amount&&amount>0){
223             balance-=amount;
224             return;
225         }
226         if((balance+overdraftProtection)>=amount&&amount>0){
227             balance=0;
228             overdraftProtection-=amount-balance;
229             throw new OverdraftException("overdract protection: ",overdraftProtection-amount+balance);
230         }
231         throw new OverdraftException("no overdraft protection--- ",amount-balance-overdraftProtection);
232     }        
233 }
234 /**
235   *
236   */
237 class CustomerReport{
238     Bank bank=Bank.getBank();
239 }
240 /**
241   *
242   */
243 class OverdraftException extends Exception{
244     /**
245        *
246        */
247     private double deficit;
248     /**
249        *
250        */
251     OverdraftException(String message,double deficit){
252         this.deficit=deficit;
253         System.out.println(message+this.deficit);
254     }
255     /**
256        *
257        */
258     public double getDeficit(){
259         return this.deficit;
260     }
261 }

 

0925-----homework

标签:

原文地址:http://www.cnblogs.com/kaililikai/p/5907110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!