2014-01-20 40 views
0

如何将此代码封装? 他们说封装是数据隐藏, 我知道如何做一些超载 和覆盖, 但不封装, 请帮我解决我的问题。 我不擅长Java编程, 提前谢谢!如何在java中封装代码

公共类ATM {

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    int bal = 1000; 
    int balance =+ bal; 

    System.out.println("===ATM Simulator==="); 
    System.out.println("\n[B] Balance"); 
    System.out.println("[W] Withdraw"); 
    System.out.println("[D] Deposit"); 
    System.out.println("[E] Exit"); 
    do{ 
    System.out.println("\nChoose Your Transaction:"); 
    String trans = input.next(); 
    try { 
    if(trans.equalsIgnoreCase("W")) 
    { 
     System.out.println("Enter the Amount to Withdraw: [1000,500,200,100]"); 
     int wdraw = input.nextInt(); 
     int withd = wdraw; 
     int charge = 10; 
     if (withd%100==0) 
     { 
      balance = balance - withd - charge; 
      System.out.println("Your current balance is now: "+balance); 
     } 
     else 
     { 
      System.out.println("Value Not in Range!"); 
     } 
    } 
    if(trans.equalsIgnoreCase("D")) 
    { 
     System.out.println("Enter the Amount to Deposit:"); 
     int deposit = input.nextInt(); 
     balance = balance + deposit; 
     System.out.println("Your current balance is now: "+balance); 
    } 
    if(trans.equalsIgnoreCase("B")) 
    { 
     System.out.println("Your Current Balance is: "+balance); 
    } 

    if(trans.equalsIgnoreCase("E")) 
    { 
     System.out.println("Transaction Ended!\nThank you!"); 
     System.exit(0); 
    } 
     } 
    catch (Exception e) 
    { 
     System.out.println("Invalid Input!");  
    } 
    } 
    while (balance>=200); 
} 

}

+0

只读,什么封装是:http:///en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29 – bobbel

回答

0

封装是“藏”一类的领域,使他们只能通过类的方法访问(从而控制哪些字段的方法能和不能被设置为)

见 - http://www.tutorialspoint.com/java/java_encapsulation.htm

EG:如果一个类有一个size场,哟你会使大小字段专用,然后提供一个setSize类的方法 - 然后你可以在setSize方法中添加验证,以控制什么大小可以和不能设置为