?? account.java
字號:
package banking;
import java.lang.*;
import java.io.DataOutputStream;
/**import java.lang
import java.io.DataOutputStream;**/
public class Account
{
private double balance;
/*帳戶金額*/
private String accPassword;
/*z帳戶密碼*/
private String accNumber;
/*帳戶號碼*/
/**初始化帳戶,取得帳戶金額賦值,帳戶密碼,**/
public Account(double bal,String pwd,String accNum)
{
balance=bal;
accPassword = pwd;
accNumber = new String(accNum);
}
/**返回帳戶號碼**/
public String getAccountNum()
{
return accNumber;
}
/*查詢帳戶余額*/
private double getBalance()
{
//System.out.println("查詢余額為:"+balance);
return balance;
}
/*存款業務*/
private double Deposit(double dep)
{
balance+=dep;
//System.out.println(dep+"!!");
return balance;
}
/*取款業務,如果余額不足將拋出異常*/
private boolean Withdraw(double wit,DataOutputStream out)throws myException
{
double temp;
temp=balance-wit;
if(temp<0)
{
myException e=new myException(0-temp);
throw e;
}
else
{
Double df=new Double(temp);
//帳戶臨時更新
try
{
out.writeUTF("取款成功,你帳上的余額為:"+df.toString());
//帳戶最終更新(以后版本將會在接收到客戶端的確認信息后再更新,以保證帳戶信息的可靠)
balance=temp;
}
catch (Exception e)
{
}
return true;
}
}
/**檢查帳戶密碼,驗證客戶對帳戶的訪問是否合法,如果合法再根據客戶提交的業務操作做處理
對于取款業務可能會拋出金額不夠的異常**/
public boolean checkPassword(String accPassword,double bal,int opType,DataOutputStream out)
{
if(this.accPassword.equals(accPassword))
{
synchronized(this)
{
switch (opType)
{
case 1:
{
Double i=new Double(getBalance());
try
{
out.writeUTF(i.toString());
}
catch (Exception e)
{
}
}
break;
case 2:
{
Double i=new Double(Deposit(bal));
try
{
out.writeUTF(i.toString());
}
catch (Exception e)
{
}
}
break;
case 3: {
try
{
Withdraw(bal,out);
}
catch(myException e)
{
//System.out.println("Error");
try
{
out.writeUTF("您帳上的余額不足"+"還差 "+e.getMessage());
}
catch(Exception abc)
{
}
}
break;
}
}
}
}
else
{
//System.out.println("Error!");
try
{
out.writeUTF("密碼錯誤");
}
catch (Exception e)
{
}
return false;
}
return true;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -