Я пытаюсь создать приложение для банковского счета, которое будет работать с потоками.Я хочу иметь 3 разных банковских счета, но я не уверен, как это сделать.
Мой код приведен ниже:
package bankapp1;
public class Account implements Runnable {
int balance;
int preTransaction;
String customerName;
String customerId;
Account()
{
balance = 6000;
}
public void run() {
for (int i =1; i <=4; i++) {
deposit(2000);
if (getBalance() < 0 ) {
System.out.println("account is overdrawn!");
}
}
}
public synchronized void deposit (int amount) {
if (getBalance() >= amount ) {
System.out.println(Thread.currentThread().getName() + " is going to withdraw $ "
+ amount);
try {
Thread.sleep(3000);
} catch (InterruptedException ex) {
}
withdraw(amount);
System.out.println(Thread.currentThread().getName() + " completes the withdrawl of $ "
+ amount);
} else {
System.out.println(" not enought in account for " + Thread.currentThread().getName()
+ "to withdraw" + getBalance());
}
}
public int getBalance() {
return balance;
}
public void withdraw(int amount) {
if (amount!=0) {
balance = balance - amount;
preTransaction = -amount;
}
}
void getPreTransaction()
{
if (preTransaction > 0)
{
System.out.println("Deposited: " +preTransaction);
}
else if (preTransaction < 0) {
System.out.println("Withdrawn: " + Math.abs(preTransaction));
}
else {
System.out.println("No transaction occured");
}
}
}
package bankapp1;
public class ClientTesting {
public static void main(String[] args) {
Account acc = new Account();
Thread t1 = new Thread(acc);
Thread t2 = new Thread(acc);
t1.setName("pinelopi");
t2.setName("andreas");
t1.start();
t2.start();
}
}
Нужно ли мне создавать еще один класс SavingAccount с почти такими же реализациями, как у класса Account, а затем вызывать его в классе ClientTesting, как я это делал сКласс учетной записи?