?? bank.java
字號(hào):
package banking;
import java.util.*;
import java.io.DataOutputStream;
/**import java.util.*;
import java.io.DataOutputStream;**/
/**采用單一設(shè)計(jì)模式,只能生成一個(gè)對(duì)象,且在內(nèi)部生成**/
public class Bank
{
private Vector customer=new Vector();
//客戶容器類,存放銀行的客戶信息
private MyStruct myMessage=new MyStruct();
//存放客戶訪問(wèn)操作得到的結(jié)果
private static Bank bankInstance=null;
//單一模式規(guī)則之一,建立私有的靜態(tài)的銀行對(duì)象引用實(shí)例。
private Bank()
{
}
//單一設(shè)計(jì)模式要求,建立私有構(gòu)造函數(shù),使外界不得建立對(duì)象,保證系統(tǒng)中銀行對(duì)象的唯一性
public static Bank getBank()
{
//如果對(duì)象引用為空,即銀行對(duì)象尚未建立,則建立對(duì)象,最終返回給用戶該對(duì)象的引用。
//這種判斷保證了有且僅有
//靜態(tài)方法確保對(duì)象生成之前就可以使用該方法
if (bankInstance==null)
{
bankInstance=new Bank();
return bankInstance;
}
return bankInstance;
}
/**檢查客戶狀態(tài),確認(rèn)客戶是否合法,傳入身份證,密碼,金額,操作類型,帳戶號(hào)碼**/
public boolean checkCustomer(String ID,String password ,double balance ,int opType,String accountNum,DataOutputStream out)
{
int i=0;
for (;i<customer.size();i++)
{
Customer cus=(Customer)customer.get(i);
//從容器類取出客戶對(duì)象
if(ID.equals(cus.getID()))
{
cus.checkAccount(password,accountNum,balance,opType,out);
return true;
}
}
try
{
out.writeUTF("客戶不存在");
}
catch (Exception e)
{
}
return false;
}
/**檢查客戶狀態(tài),確認(rèn)客戶是否合法,傳入姓,名,身份證號(hào),密碼,金額,操作類型**/
public boolean checkCustomer(String firstName,String lastName,String ID,String password ,double balance ,int opType,DataOutputStream out)
{
int i=0;
//如果類型為0,用戶執(zhí)行了開(kāi)戶操作
if(opType==0)
{
for (;i<customer.size();i++)
{
//取客戶數(shù)據(jù)
Customer cus=(Customer)customer.get(i);
//如果客戶已經(jīng)存在,創(chuàng)建帳戶
if(ID.equals(cus.getID()))
{
System.out.println(cus.createAccount(balance,password,out));
System.out.println("創(chuàng)建帳戶");
return true;
}
}
//客戶不存在,如果客戶端沒(méi)有傳入姓名資料,要求客戶重新輸入,否則則創(chuàng)建客戶資料,再創(chuàng)建帳戶
if (firstName.equals("")||lastName.equals(""))
{
System.out.println("客戶資料不對(duì)");
try
{
out.writeUTF("客戶不存在,無(wú)法創(chuàng)建帳戶。請(qǐng)先輸入合法客戶信息");
}
catch(Exception e)
{
}
}
else
{
System.out.println("客戶的姓名是"+firstName+lastName);
System.out.println("創(chuàng)建客戶");
createCustomer(firstName,lastName,ID,balance,password,out);
}
}
return false;
}
/**創(chuàng)建客戶,要求姓,名,身份證號(hào)碼,金額,密碼**/
private boolean createCustomer(String firstName,String lastName,String ID,double balance,String password,DataOutputStream out)
{
//創(chuàng)建客戶對(duì)象
Customer cusT=new Customer(firstName,lastName,ID);
//把客戶對(duì)象加入容器類,即在容器類中存放該對(duì)象的引用
customer.add(cusT);
/*
//定義一個(gè)客戶對(duì)象的引用,把容器類中的最后一個(gè)元素的引用賦給該引用,該引用為當(dāng)前客戶
Customer cus=(Customer)customer.lastElement();
*/
System.out.println("您的帳號(hào)為"+cusT.createAccount(balance,password,out));
return true;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -