Java实验一—编程实现计算贷款偿还额的程序

(仅记录自己的学习之路)
编程实现计算贷款偿还额的程序。根据用户输入的贷款信息,包括:年利率、贷款额、贷款年限,计算用户该笔贷款的月还款额和总还款额。
具体要求:设计一个Loan类表示贷款。这个类包括:
(1) 一个名为annualInterestRate的私有double数据域,表示一笔贷款的年利率;
(2) 一个名为numberOfYears的私有int数据域,表示一笔贷款的贷款年限;
(3) 一个名为loanAmount的私有double数据域,表示一笔贷款的贷款额;
(4) 一个名为loanDate的Date类型数据域,表示贷款创建的日期;
提示:Date类是JDK中的类,位于java.util包中,下面的代码创建了date对象,该对象保存了创建该对象的那一时刻所对应的时间;
Date date = new Date();
(5) 一个以用户指定值创建一笔贷款的构造方法;
提示:在两个构造方法中都要创建账户创建日期对象;
(6) 一个以默认值创建一笔贷款的无参构造方法;
要求:通过this关键字调用上面的构造方法给成员变量赋值,各个成员变量的默认值自己随便写
(7) 数据域loanDate的get方法,以及其他数据域的get方法和set方法;
思考:loanDate表示创建账号的日期,在构造方法中初始化,没有为其提供set方法,那loanDate中的日期,可以修改吗?
(8) 一个名为getMonthlyPayment()的方法,计算并返回月还款额;
(9) 一个名为getTotalPayment()的方法,计算并返回总还款额。
月还款额和总还款额的计算公式如下:
Java实验一—编程实现计算贷款偿还额的程序_第1张图片
提示:使用JDK提供的Math类的静态方法pow计算指数,该方法的定义如下:
public static double pow(double a, double b)
该方法返回第一个参数的第二个参数次幂的值。
由于是静态方法,使用类名直接调用方法实现指数计算。
画出Loan类的UML图,并实现这个类。编写一个测试程序,根据用户输入的年利率、贷款年限和贷款额,计算该用户该笔贷款的月还款额和总还款额,按照如下样例输出。
Java实验一—编程实现计算贷款偿还额的程序_第2张图片
代码如下:

package TestLoan;

import java.util.Date;
import java.util.Scanner;

class Loan{
	private double annualInterestRate;               //一笔贷款的年利率
	private int numberOfYears;                       //一笔贷款的贷款年限
	private double loanAmount;                        //一笔贷款的贷款额
	private Date loanDate;                            //贷款创建的日期
	Loan(){
	}
	public Loan(double annualInterestRate, int numberOfYears, double loanAmount, Date loanDate) {
		loanDate = new Date();
		this.annualInterestRate = annualInterestRate;
		this.numberOfYears = numberOfYears;
		this.loanAmount = loanAmount;
		this.loanDate = loanDate;
	}                                                    //以用户指定值创建一笔贷款的构造方法
	public void Loan(){
		this.Loan();
		this.annualInterestRate = 3;
		this.numberOfYears = 10;
		this.loanAmount = 806.0;
		loanDate = new Date();
	}                                                   //以默认值创建一笔贷款的无参构造方法
	public Date getLoanDate() {
		return loanDate;
	}                                                   //loanDate访问器
	public double getAnnualInterestRate() {
		return annualInterestRate;
	}                                                   //annualInterestRate访问器
	public void setAnnualInterestRate(double annualInterestRate) {
		this.annualInterestRate = annualInterestRate;
	}                                                  //annualInterestRate修改器
	public int getNumberOfYears() {
		return numberOfYears;
	}                                                  //numberOfYears访问器
	public void setNumberOfYears(int numberOfYears) {
		this.numberOfYears = numberOfYears;
	}                                                  //numberOfYears修改器
	public double getLoanAmount() {
		return loanAmount;
	}                                                  //loanAmount访问器
	public void setLoanAmount(double loanAmount) {
		this.loanAmount = loanAmount;
	}                                                 //loanAmount修改器
	public double getMonthlyPayment() {
		return loanAmount * (annualInterestRate/1200) / (1 - Math.pow(1 / (1 + annualInterestRate/1200), (numberOfYears * 12)));
	}                                                //计算并返回月还款额
	public double getTotalPayment() {
		return (loanAmount * (annualInterestRate/1200) / (1 - Math.pow(1 / (1 + annualInterestRate/1200), (numberOfYears * 12)))) * numberOfYears * 12;
	}                                                //计算并返回总还款额
}

public class testLoan {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		Loan m = new Loan();                     //创建一个贷款对象
		m.setAnnualInterestRate(input.nextDouble());
		m.setNumberOfYears(input.nextInt());
		m.setLoanAmount(input.nextDouble());
		System.out.println("贷款年利率是:" + m.getAnnualInterestRate());
		System.out.println("贷款总额是:" + m.getLoanAmount());
		System.out.println("贷款年限是:" + m.getNumberOfYears());
		System.out.println("月还款额是:" + m.getMonthlyPayment());
		System.out.println("还款总额是:" + m.getTotalPayment());
	}
}

其实呢,怎么用this调用构造方法给成员变量赋值,还是不懂,等老师的答案啦…
(老师也说过this(xx,xx,xx)括号里是参数,但这啥意思[捂脸.jpg]查资料也没有查到)

你可能感兴趣的:(Java实验一—编程实现计算贷款偿还额的程序)