如何理解面向对象__案例1_腾讯2015笔试题
试题见Java_Interview栏
最终实现部分由:设计两个类用户类和魔盒库存类,一个接口函数,一个接口实现函数,一个测试函数test构成;
- 首先;先实例化一个user1和一个操作行为OrderOperationImpl();
- 在C++中在类的设计的时候会有构造函数,而Java中习惯用get和set方法来设置初始化参数;因此这里接着两个set函数;
- 这是做一个user1的执行函数确定三个行为(订单创建行为,用户积分扣除行为,魔盒库存减1行为)都成功的时候,返回boolean;=下单成功;
1、User类
/** * 用户类 * @author * */ public class User { private int id; // 用户ID private int credit; // 用户积分 public int getId() { return id; } public void setId(int id) { this.id = id; } public int getCredit() { return credit; } public void setCredit(int credit) { this.credit = credit; } }
2、魔盒库存类
/** * 魔盒库存类 * @author * */ public class BoxStock { private volatile static BoxStock boxStock; private int currentNumOfBox = 500000; private BoxStock (){} /** * 获取BoxStock的实例 * @return BoxStock实例 */ public static BoxStock getBoxStock() { if (boxStock == null) { synchronized (BoxStock.class) { if (boxStock == null) { boxStock = new BoxStock(); } } } return boxStock; } /** * 获取当前剩余的魔盒数 * @return 剩余的魔盒数 */ public int getCurrentNumOfBox() { return currentNumOfBox; } /** * 设置魔盒数 * @param currentNumOfBox 新的魔盒数 */ public void setCurrentNumOfBox(int currentNumOfBox) { this.currentNumOfBox = currentNumOfBox; } }