-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprac2_4.java
120 lines (116 loc) · 3.09 KB
/
prac2_4.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import java.util.Date;
class Account3 {
protected String id;
protected double balance = 500;
protected double annualInterestRate = 7;
protected final Date dateCreated;
Account3(){
dateCreated = new Date();
}
Account3(String id, double initialBalance){
this.id = id;
this.balance = initialBalance;
dateCreated = new Date();
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public double getBalance()
{
return balance;
}
public void setBalance(double balance)
{
this.balance = balance;
}
public double getAnnualInterestRate()
{
return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate)
{
this.annualInterestRate = annualInterestRate;
}
public Date getDateCreated()
{
return dateCreated;
}
public double getMonthlyInterestRate()
{
return annualInterestRate/12.0;
}
public double getMonthlyInterest()
{
return (balance * getMonthlyInterestRate() * 30) / 100.0;
}
public void withdraw(int amount)
{
balance -= amount;
System.out.println("Amount: " + amount + " withdrawn, current balance: " + balance);
}
public void deposit(int amount)
{
balance += amount;
System.out.println("Amount: " + amount + " deposited, current balance: " + balance);
}
}
class CheckingAccount extends Account3
{
int overdraftLimit = 10000;
@Override
public void withdraw(int amount)
{
if(amount > overdraftLimit)
{
System.out.println("Can't withdraw: " + amount + ", overdraft limit is: " + overdraftLimit);
return;
}
balance -= amount;
System.out.println("Amount: " + amount + " deposited, current balance: " + balance);
}
public int getOverdraftLimit()
{
return overdraftLimit;
}
public void setOverdraftLimit(int overdraftLimit)
{
this.overdraftLimit = overdraftLimit;
}
}
class SavingsAccount extends Account3 {
int overdrawnLimit = 0;
public void withdraw(int amount)
{
if(balance - amount < overdrawnLimit)
{
System.out.println("Can't withdraw: " + amount + ", overdrawn limit is: " + overdrawnLimit);
return;
}
balance -= amount;
System.out.println("Amount: " + amount + " deposited, current balance: " + balance);
}
public int getOverdrawnLimit()
{
return overdrawnLimit;
}
public void setOverdrawnLimit(int overdrawnLimit)
{
this.overdrawnLimit = overdrawnLimit;
}
}
public class prac2_4
{
public static void main(String[] args){
SavingsAccount sa = new SavingsAccount();
CheckingAccount ca = new CheckingAccount();
System.out.println("<SavingsAccount>.toString() = " + sa.toString());
System.out.println("<CheckingAccount>.toString() = " + ca.toString());
sa.withdraw(500);
ca.withdraw(300);
}
}