11.6 (Use ArrayList) Write a program that creates an ArrayList and adds a Loan
object, a Date object, a string, and a Circle object to the list, and use a loop
to display all the elements in the list by invoking the object’s toString()
method.
object, a Date object, a string, and a Circle object to the list, and use a loop
to display all the elements in the list by invoking the object’s toString()
method.
import java.util.ArrayList; import java.util.Date; public class Account { protected String mName; protected int mId; protected double mBalance; protected double mAnnualInterestRate; // AnnualInterestRate is percentage. protected Date mDateCreated; protected ArrayList<Transaction> mTransactions; public Account() { mDateCreated = new Date(); mTransactions = new ArrayList<>(); } public Account(int id, double balance) { this(); mId = id; mBalance = balance; } public Account(String name, int id, double balance) { this(id, balance); mName = name; } public int getId() { return mId; } public void setId(int id) { mId = id; } public double getBalance() { return mBalance; } public void setBalance(double balance) { mBalance = balance; } public double getAnnualInterestRate() { return mAnnualInterestRate; } public void setAnnualInterestRate(double annualInterestRate) { mAnnualInterestRate = annualInterestRate; } public Date getDateCreated() { return mDateCreated; } public double getMonthlyInterestRate() { return mBalance * (mAnnualInterestRate / 12) / 100; } public void withdraw(double amount) { mTransactions.add(new Transaction('W', amount, mBalance, "withdraw")); mBalance -= amount; } public void deposit(double amount) { mTransactions.add(new Transaction('D', amount, mBalance, "deposit")); mBalance += amount; } @Override public String toString() { return "Account name: " + mName + "\n" + "Interest rate: " + mAnnualInterestRate + "\n" + mTransactions; } public ArrayList<Transaction> getTransactions() { return new ArrayList<>(mTransactions); } }
import javafx.scene.shape.Circle; public class Circle2D extends GeometricObject { private double x; private double y; private double radius; public Circle2D(Circle c) { this(c.getCenterX(), c.getCenterY(), c.getRadius()); } public Circle2D(double x, double y, double radius) { this.x = x; this.y = y; this.radius = radius; } public Circle2D() { this(0, 0, 1); } public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } @Override public double getArea() { return radius * radius * Math.PI; } @Override public double getPerimeter() { return 2 * radius * Math.PI; } public boolean contains(Circle2D circle2D) { double distance = getPoint().distance(circle2D.x, circle2D.y); if (distance <= Math.abs(this.radius - circle2D.radius)) { return true; } else { return false; } } public static boolean c1ContainsC2(Circle c1, Circle c2) { Circle2D cir1 = new Circle2D(c1); Circle2D cir2 =new Circle2D(c2); return cir1.contains(cir2); } public static boolean c1OverlapsC2(Circle c1, Circle c2) { Circle2D cir1 = new Circle2D(c1); Circle2D cir2 =new Circle2D(c2); if (cir1.contains(cir2) || cir2.contains(cir1)) return false; return cir1.overlaps(cir2); } public boolean overlaps(Circle2D circle2D) { double distance = getPoint().distance(circle2D.x, circle2D.y); if (distance <= this.radius + circle2D.radius) return true; else return false; } private MyPoint getPoint() { return new MyPoint(this.x, this.y); } @Override public String toString() { return "Circle2D{" + "x=" + x + ", y=" + y + ", radius=" + radius + '}'; } public boolean contains(double x, double y) { double distance = getPoint().distance(x, y); if (distance <= radius) return true; else return false; } }
import java.util.ArrayList; import java.util.Date; public class Exercise_06 { public static void main(String[] args) { ArrayList<Object> list = new ArrayList<>(); list.add(new Circle2D()); list.add("Hello I'm a string"); list.add(new Date()); list.add(new Account(111, 230)); list.forEach(System.out::println); } }