-
@Items.java//解决编号没有合并问题 @Override public int hashCode() { //若getId和getName相同,则hashCode一定相同(相同字符串的hashcode值一定相同) return this.getId()+this.getName().hashCode(); } @Override public boolean equals(Object obj) { // TODO Auto-generated method stub if(this==obj) { return true; } if(obj instanceof Items) { Items i = (Items)obj; if(this.getId()==i.getId()&&this.getName().equals(i.getName())) { return true; } else { return false; } } else { return false; } } @Cart.java //添加商品进购物车的方法 public boolean addGoodsInCart(Items item ,int number) { if(goods.containsKey(item))//重复添加,解决数量没有相加问题 { goods.put(item, goods.get(item)+number); } else//第一次添加 { goods.put(item, number); } calTotalPrice(); //重新计算购物车的总金额 return true; }查看全部
-
重点回顾:java中判断两个对象是否相等的规则: 首先,判断两个对象的hashCode是否相等 如果不相等,认为两个对象也不相等 如果相等,则判断两个对象用equals运算是否相等 如果不相等,认为两个对象也不相等 如果相等,认为两个对象相等 我们在equals方法中需要向下转型,效率很低,所以先判断hashCode方法可以提高效率。 equals()相等的两个对象,hashcode()一定相等; equals()不相等的两个对象,却并不能证明他们的hashcode()不相等。 1,所有Java类都继承自Object类 2,Object类中有 public int hashCode(){} public boolean equals(Object obj){} 这两个方法及其他的方法。 在Object类中,equls()方法和==的本质是相同的,都是判断两个引用是否指向同一对象。 String类继承自Object类,但String类重写了equals()方法, 使得:equals()方法的作用是比较两个字符串的内容是否相等;==的作用是比较两个引用是否指向同一个对象; 很多类都重写了equals方法,供自己产生新的定义。 3,在本程序中:Items类继承自Object类,并且重写了equals()方法,不按照父类的比较方法来比较两个对象,使得该方法能够按照程序员自己的意愿来比较两个对象查看全部
-
统计购物车的总金额查看全部
-
购物车商品的集合查看全部
-
购物车类的集合查看全部
-
MVC模型实现(jsp+servlet+dao)查看全部
-
使用servlet技术实现购物车效果查看全部
-
Model2查看全部
-
MVC模式查看全部
-
servlet初始化方法查看全部
-
配置初始化查看全部
-
servlet高级获取初始化参数查看全部
-
servlet实现用户登录案例查看全部
-
服务器内部跳转的路径查看全部
-
使用request.getContextPath获得上下文对象查看全部
举报
0/150
提交
取消