17.6 (Store Loan objects)
The Loan class in Listing 10.2 does not implement Serializable.
Rewrite the Loan class to implement Serializable. Write a program
that creates five Loan objects and stores them in a file named Exercise17_06.dat.
The Loan class in Listing 10.2 does not implement Serializable.
Rewrite the Loan class to implement Serializable. Write a program
that creates five Loan objects and stores them in a file named Exercise17_06.dat.
import java.io.Serializable; public class Loan implements Serializable { private double annualInterestRate; private int numberOfYears; private double loanAmount; private java.util.Date loanDate; /** Default constructor */ public Loan() { this(2.5, 1, 1000); } /** Construct a loan with specified annual interest rate, number of years, and loan amount */ public Loan(double annualInterestRate, int numberOfYears, double loanAmount) { this.annualInterestRate = annualInterestRate; this.numberOfYears = numberOfYears; this.loanAmount = loanAmount; loanDate = new java.util.Date(); } /** Return annualInterestRate */ public double getAnnualInterestRate() { return annualInterestRate; } /** Set a new annualInterestRate */ public void setAnnualInterestRate(double annualInterestRate) { this.annualInterestRate = annualInterestRate; } /** Return numberOfYears */ public int getNumberOfYears() { return numberOfYears; } /** Set a new numberOfYears */ public void setNumberOfYears(int numberOfYears) { this.numberOfYears = numberOfYears; } /** Return loanAmount */ public double getLoanAmount() { return loanAmount; } /** Set a newloanAmount */ public void setLoanAmount(double loanAmount) { this.loanAmount = loanAmount; } /** Find monthly payment */ public double getMonthlyPayment() { double monthlyInterestRate = annualInterestRate / 1200; double monthlyPayment = loanAmount * monthlyInterestRate / (1 - (1 / Math.pow(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; } }
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class Exercise_06 { public static void main(String[] args) throws IOException { File file = new File("Exercise17_06.dat"); try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file))) { for (int i = 0; i < 5; i++) { out.writeObject(new Loan(0.6, 23, 50 + (Math.random() * 101))); } } } }
No comments:
Post a Comment