2018. 4. 18. 17:36ㆍ자격인증
package book.page17;
import java.text.NumberFormat;
public class AccountStep1 {
public enum Activity { 입금, 출금 };
String account; // 계좌
String accountHolder; // 예금주
long balance; // 잔액
public AccountStep1(String account, String accountHolder, long balance) {
this.account = account;
this.accountHolder = accountHolder;
this.balance = balance;
System.out.println("계좌 " + this.account + "( 예금주:" + accountHolder + " )\n잔액:" + this.balance + "원");
}
// version1
public void deposit(long depositAmount) {
balance += depositAmount;
System.out.println(depositAmount + " 원 입금합니다.\n잔액:" + this.balance + "원");
}
// version1
public void withdraw(long withdrawAmount) {
balance -= withdrawAmount;
System.out.println(withdrawAmount + " 원 출금합니다.\n잔액:" + this.balance + "원");
}
// version1
public static String toString(double money) {
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(0); // 소수점 자릿수
nf.setGroupingUsed(false); // 자릿수(,) 표시여부
return nf.format(money);
}
// version2
public void teller(Activity activity, long cash) {
switch (activity) {
case 입금 :
balance += cash;
break;
case 출금 :
balance -= cash;
break;
}
System.out.println(cash + " 원 " + activity + "합니다.\n잔액:" + this.balance + "원");
}
}
------------------------------------------------------------------------
package book.page17;
import book.page17.AccountStep1.Activity;
public class AccountStep1Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AccountStep1 accountStep1 = new AccountStep1("123-456789", "홍길동", 10000);
//accountStep1.deposit(20000);
//accountStep1.withdraw(45000);
accountStep1.teller(Activity.입금, 20000);
accountStep1.teller(Activity.출금, 45000);
}
}