1. 程式人生 > >一個簡單的例項Loan類的實現和測試

一個簡單的例項Loan類的實現和測試

import  java.util.Scanner;
public class TestLoanClass {                   

	public static void main(String[] args) {
		// TODO 自動生成的方法存根
		Scanner input = new Scanner(System.in);
		
		System.out.print("Enter yearly interest rate ,for example, 8.25 ");
		
		double annualInterestRate = input.nextDouble();
		
		System.out.print("Enter number of years as an integere: ");
		
		int numberOfYears = input.nextInt();
		
		System.out.print("Enter loan amount ,for example , 1200000.95:");
		
		double loanAmount = input.nextDouble();
		
		Loan loan = new Loan (annualInterestRate,numberOfYears,loanAmount);
		
		System.out.printf("The loan was created on %s\n"
		+"The monthly payment is %.2f\n The toal payment is %.2f\n",
		loan.getLoanDate().toString(),loan.getMonthlyPayment(),loan.getTotalPayment());
	}
		

	
	
static class Loan{                //不宣告成靜態的類上面new Loan物件的時候回報錯,main()和class Loan之外建立一個外部例項,再在main()裡面通過外部例項去例項化物件
		private double annualInterestRate;
		private int numberOfYears;
		private double loanAmount;
		private java.util.Date loanDate;
		
		public Loan() {
			this(2.5,1,1000);
		}
		
		public Loan (double annualInterestRate ,int numberOfYears,double loanAmount) {
			this.annualInterestRate = annualInterestRate;
			this.numberOfYears = numberOfYears;
			this.loanAmount = loanAmount;
			loanDate = new java.util.Date();
		}
		
		public double getAnnualInterestRate() {
			return annualInterestRate;
			
		}
		
		public void setAnnualInterestRate(double annaulInterestRate) {
			this.annualInterestRate = annualInterestRate;
		}
		
		public int getNumberOfYears() {
			return numberOfYears;
		}
		
		public void setNumberOfYears(int numberOfYears) {
			this.numberOfYears = numberOfYears;
		}
		
		public double getLoanAmount() {
			return loanAmount;
		}
		public void setLoanAmount(double LoanAmount) {
			this.loanAmount = loanAmount;
		}
		
		public double getMonthlyPayment() {
			double monthlyInterestRate = annualInterestRate / 1200;
			double monthlyPayment = loanAmount * monthlyInterestRate / (1-
					(Math.pow(1/(1+monthlyInterestRate), numberOfYears*12)));
			return monthlyPayment;
			
		}
		public double getTotalPayment() {
			double totalPayment = getMonthlyPayment()*numberOfYears*12;
			return totalPayment;
		}
		
		public java.util.Date getLoanDate(){
			return loanDate;
		}

	}
	

}