📄 bank.java
字号:
package banking;
import java.util.*;
import java.io.DataOutputStream;
/**import java.util.*;
import java.io.DataOutputStream;**/
/**采用单一设计模式,只能生成一个对象,且在内部生成**/
public class Bank
{
private Vector customer=new Vector();
//客户容器类,存放银行的客户信息
private MyStruct myMessage=new MyStruct();
//存放客户访问操作得到的结果
private static Bank bankInstance=null;
//单一模式规则之一,建立私有的静态的银行对象引用实例。
private Bank()
{
}
//单一设计模式要求,建立私有构造函数,使外界不得建立对象,保证系统中银行对象的唯一性
public static Bank getBank()
{
//如果对象引用为空,即银行对象尚未建立,则建立对象,最终返回给用户该对象的引用。
//这种判断保证了有且仅有
//静态方法确保对象生成之前就可以使用该方法
if (bankInstance==null)
{
bankInstance=new Bank();
return bankInstance;
}
return bankInstance;
}
/**检查客户状态,确认客户是否合法,传入身份证,密码,金额,操作类型,帐户号码**/
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);
//从容器类取出客户对象
if(ID.equals(cus.getID()))
{
cus.checkAccount(password,accountNum,balance,opType,out);
return true;
}
}
try
{
out.writeUTF("客户不存在");
}
catch (Exception e)
{
}
return false;
}
/**检查客户状态,确认客户是否合法,传入姓,名,身份证号,密码,金额,操作类型**/
public boolean checkCustomer(String firstName,String lastName,String ID,String password ,double balance ,int opType,DataOutputStream out)
{
int i=0;
//如果类型为0,用户执行了开户操作
if(opType==0)
{
for (;i<customer.size();i++)
{
//取客户数据
Customer cus=(Customer)customer.get(i);
//如果客户已经存在,创建帐户
if(ID.equals(cus.getID()))
{
System.out.println(cus.createAccount(balance,password,out));
System.out.println("创建帐户");
return true;
}
}
//客户不存在,如果客户端没有传入姓名资料,要求客户重新输入,否则则创建客户资料,再创建帐户
if (firstName.equals("")||lastName.equals(""))
{
System.out.println("客户资料不对");
try
{
out.writeUTF("客户不存在,无法创建帐户。请先输入合法客户信息");
}
catch(Exception e)
{
}
}
else
{
System.out.println("客户的姓名是"+firstName+lastName);
System.out.println("创建客户");
createCustomer(firstName,lastName,ID,balance,password,out);
}
}
return false;
}
/**创建客户,要求姓,名,身份证号码,金额,密码**/
private boolean createCustomer(String firstName,String lastName,String ID,double balance,String password,DataOutputStream out)
{
//创建客户对象
Customer cusT=new Customer(firstName,lastName,ID);
//把客户对象加入容器类,即在容器类中存放该对象的引用
customer.add(cusT);
/*
//定义一个客户对象的引用,把容器类中的最后一个元素的引用赋给该引用,该引用为当前客户
Customer cus=(Customer)customer.lastElement();
*/
System.out.println("您的帐号为"+cusT.createAccount(balance,password,out));
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -