입출금_넘버포멧_Enum

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);

 }

}