public class Loan{ private double annualInterestRate; private int numberOfYears; private double loanAmount; private java.util.Date loanDate; //default constructor public Loan(){ this(2.5, 1, 1000); } //another constuctor public Loan(double annualInterestRate, int numberOfYears, double loanAmount){ this.annualInterestRate = annualInterestRate; this.numberOfYears = numberOfYears; this.loanAmount = loanAmount; loanDate = new java.util.Date(); } //getMethods public double getAnnualInterestRate(){ return annualInterestRate; } public int getNumberOfYears(){ return numberOfYears; } public double getLoanAmount(){ return loanAmount; } //setMethods, do I really need this???? public void setAnnualInterestRate(double annualInterestRate){ this.annualInterestRate = annualInterestRate; } public void setNumberOfYears(int numberOfYears){ this.numberOfYears = numberOfYears; } public void setLoanAmount(double loanAmount){ this.loanAmount = loanAmount; } //monthly payment public double getMonthlyPayment(){ double monthlyInterestRate = annualInterestRate / 1200; double monthlyPayment = loanAmount * monthlyInterestRate / (1 - (Math.pow(1 / (1 + monthlyInterestRate), numberOfYears * 12))); return monthlyPayment; } //find total payment public double getTotalPayment(){ double totalPayment = getMonthlyPayment() * numberOfYears * 12; return totalPayment; } //return loan date public java.util.Date getLoanDate(){ return loanDate; } }
and
//pg 348 class abstraction import java.util.Scanner; public class TestLoan{ public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("Enter yearly interst rate, for example 8.25: "); double annualInterestRate = input.nextDouble(); System.out.println("Enter number of years as an integer: "); int numberOfYears = input.nextInt(); System.out.println("Enter loan amount, for example 12000.34: "); double loanAmount = input.nextDouble(); //create a loan object Loan loan = new Loan(annualInterestRate, numberOfYears, loanAmount); //display loan date, monthly payment, total payment System.out.printf("The loan was created on %s\n" + "The monthly payment is %.2f\nThe total payment is %.2f\n", loan.getLoanDate().toString(), loan.getMonthlyPayment(), loan.getTotalPayment()); } }