-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBankAccount.java
More file actions
110 lines (89 loc) · 2.6 KB
/
Copy pathBankAccount.java
File metadata and controls
110 lines (89 loc) · 2.6 KB
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
package Account;
public class BankAccount{
private int balance = 0;
private int pin;
private String name;
private String phoneNumber;
private int age;
private String accountNumber = "";
BankAccount(int pin,String name,String phoneNumber,int age){
this.pin = validateAge(pin);
this.name = validateName(name);
this.phoneNumber = validatePhoneNumber(phoneNumber);
this.age = validateAge(age);
}
public int checkBalance(int inputPin) {
if(inputPin != pin){
throw new IllegalArgumentException("incorrect Pin");
}
return balance;
}
public int validatePin(int pin) {
if (pin < 999 || pin > 9999) {
throw new IllegalArgumentException("invalid pin");
}
return pin;
}
public void setPin(int pin) {
this.pin = pin;
}
public String validateName(String name) {
if(name.equals(" ")){
throw new IllegalArgumentException("name cannot be empty");
}
return name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
private int validateAge(int age) {
if (age < 18) {
throw new IllegalArgumentException("you must be 18 before you can open account");
}
return age;
}
public void setAge(int age) {
this.age = age;
}
private String validatePhoneNumber(String phoneNumber){
if (phoneNumber.length() != 11){
throw new IllegalArgumentException("phone number mus be 11 digit....... invalid pin");
}
return phoneNumber;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public void deposit(int amount){
if(amount <= 0){
throw new IllegalArgumentException("invalid amount");
}
else{
balance += amount;
}
}
public void withdraw(int amount, int inputPin) {
validatePin(inputPin);
if(amount <= 0) {
throw new IllegalArgumentException("invalid amount");
} else if (amount <= balance && inputPin == pin) {
balance -= amount;
}
}
public void transfer(int amount,int pin,BankAccount toAccount){
withdraw(amount,pin);
toAccount.deposit(amount);
}
public String getAccountNumber(){
return this.accountNumber = phoneNumber.substring(1);
}
}