我必須實施一個信用卡申請,其中我只能處理一個信用卡賬戶。像credit()
,debit()
,pinChange()
這樣的操作。如何使用回調機制?
但對我的問題是我必須使用「JAVA回調」機制,在兩種情況下,通知用戶:
- 引腳電平變化
- 當餘額低於5000
我如何爲這些通知使用回調?
使用回調更是這裏的焦點..
public interface Callback {
public void onPinChange();
public void onLowBalance();
}
import java.util.Scanner;
public class CreditCard implements Callback{
Callback callback;
int pin;
float balance;
public CreditCard() {
callback = this;
this.pin = 1234; // default pin
this.balance = 10000f; // opening balance
}
public void creditBalance(float amount) {
this.balance = this.balance + amount;
}
public void debitBalance(float amount) {
if (balance <= amount) {
System.out.println("Not enough balance to debit");
} else {
balance = balance - amount;
}
if (balance < 5000) {
callback.onLowBalance();
}
}
public void changePin(int newPin) {
System.out.println("Enter the current pin");
Scanner scanner = new Scanner(System.in);
int existingPin = scanner.nextInt();
if (existingPin != pin) {
System.out.println("Wrong pin!");
} else {
pin = newPin;
callback.onPinChange();
}
scanner.close();
}
@Override
public void onPinChange() {
System.out.println("Pin changed");
}
@Override
public void onLowBalance() {
System.out.println("low balance");
}
public static void main(String[] args) {
CreditCard card = new CreditCard();
card.changePin(3333);
card.debitBalance(5200);
}
}
這使我的回調水晶般清晰的概念... yeeaaahh ...非常感謝jesse .. –
你對他的代碼格式做了什麼? :| – Sufian
@Sufian不確定這種格式化的工作是如何工作的......我想知道你是否能給我一些關於它的見解。 – SandeepGodara