需求说明:
使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位的数字,卡号以“62”开头,如图所示。
实现思路:
(1)创建 Java 项目,在项目中创建 DCNumberUtil 类。
(2)在 DCNumberUtil 类中,创建一个私有的 DCNumberUtil 类静态实例 dcNumberUtil,并私有化无参构造方法。
(3)创建 String generateDCNumber() 方法,用来生成银联借记卡号。在该方法内,实例化 StringBuilder 对象 dcNumber,用来保存生成的银联借记卡号。在 for 循环内,通过 Random() 实例,生成 17 个随机数字,并追加到 dcNumber 实例中。
(4)创建共有的静态方法 DcNumberUtil getInstance(),用来返回 DcNumberUtil 类中唯一的实例 dcNumberUtil。
实现代码:
import java.util.Random; public class DcNumberUtil { // 随机类对象 private Random random = new Random(); // 创建一个私有的静态变量 private static DcNumberUtil dcNumberUtil = new DcNumberUtil(); // 私有化构造方法 private DcNumberUtil() { } // 生成银联借记卡号的方法 public String generateDCNumber() { //保存生成的银行卡卡号 StringBuilder dcNumber = new StringBuilder("62"); int number = 0; for (int i = 0; i < 17; i++) { // 0的ASCII码是48,9的ASCII码是57 number = random.nextInt(10) + 48; dcNumber.append((char) number); } return dcNumber.toString(); } // 用于返回私有的对象 public static DcNumberUtil getInstance() { return dcNumberUtil; } }
public class TestIDNumberUtil { public static void main(String[] args) { // 获取单例对象 DcNumberUtil numberUtil = DcNumberUtil.getInstance(); // 生成五条借记卡卡号 for (int i = 0; i < 5; i++) { String idNumber = numberUtil.generateDCNumber(); System.out.println("生成的银行卡号:" + idNumber); } } }