Rate.java
上传用户:yinzh02
上传日期:2021-05-28
资源大小:63k
文件大小:2k
源码类别:

家庭/个人应用

开发平台:

Java

  1. /*
  2.  * %W% %E% Rongzhi Liu
  3.  * 
  4.  * Copyright (c) 2008 Rongzhi-Liu SUN YAT-SEN UNIVERSITY. All Rights Reserved.
  5.  * 
  6.  * This software is to calculate personal tax.
  7.  * To make its use wider, the base of tax and the Tax Rate Table can be change
  8.  * is necessary.
  9.  */
  10. package personaltax;
  11. /**
  12.  * Class Rate contains the infomation of a single level, incluing its starting
  13.  * money and the rate.
  14.  * 
  15.  * @version 1.0 09 March 2008
  16.  * @author Rongzhi-Liu
  17.  */
  18. public class Rate {
  19.     
  20.     /** The starting money of the rank. */
  21.     private double start;
  22.     
  23.     /** The rate of the rank. */
  24.     private double rate;
  25.     
  26.     /** Default constructor. Do nothing. */
  27.     public Rate(){}
  28.     
  29.     /** Constructor. */
  30.     public Rate(double s, double r){
  31.         start = s;
  32.         rate = r;
  33.     }    
  34.     /** 
  35.      * Get the starting money.
  36.      * 
  37.      * @return the starting money.
  38.      */
  39.     public double getStart(){
  40.         return start;
  41.     }
  42.     
  43.     /** 
  44.      * Get the rate.
  45.      * 
  46.      * @return the rate.
  47.      */
  48.     public double getRate(){
  49.         return rate;
  50.     }
  51.     
  52.     /**
  53.      * Override toString()
  54.      * 
  55.      * @return Fomated rate output.
  56.      */
  57.     @Override
  58.     public String toString(){
  59.         return start + "t  " + rate;        
  60.     }
  61.  
  62.     /**
  63.      * Override equals()
  64.      */
  65.     @Override
  66.     public boolean equals(Object o){
  67.         Rate r = (Rate)o;
  68.         return (start == r.start) && (rate == r.rate);
  69.     }
  70.     /**
  71.      * Override hashCode()
  72.      */
  73.     @Override
  74.     public int hashCode() {
  75.         int hash = 7;
  76.         hash = 47 * hash + (int) (Double.doubleToLongBits(this.start) ^ (Double.doubleToLongBits(this.start) >>> 32));
  77.         hash = 47 * hash + (int) (Double.doubleToLongBits(this.rate) ^ (Double.doubleToLongBits(this.rate) >>> 32));
  78.         return hash;
  79.     }
  80.     
  81.     /** 
  82.      * Calculate the tax involving the Rank.
  83.      * 
  84.      * @param AmountOfTax Money that should be taxed.
  85.      * @return The tax.
  86.      */
  87.     public double calculate(double amountOfTax){
  88.         return (amountOfTax - start) * rate;
  89.     }
  90. }