zoukankan      html  css  js  c++  java
  • 0925-----homework

      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 }
  • 相关阅读:
    cocos2dx-lua UI编辑器的设计思路
    软件中Undo(撤回)和Redo(重做)的实现
    Cocos2d-x上适合做工具的UI库:ImGui
    静态成员
    命名空间
    类对象的初始化
    函数的重载、重写与隐藏
    类的继承关系与访问限定符
    多继承
    友元函数与友元类
  • 原文地址:https://www.cnblogs.com/kaililikai/p/5907110.html
Copyright © 2011-2022 走看看