关于购物车的源程序
现在网购已经成了大家生活中的最佳便利购物平台,那么你知道怎么制作购物车吗?那么我们现在就跟着爱站小编的步伐一起去看看关于购物车的源程序的内容吧。
BuyItem.java:
package com.itcast.bean.product;
public class BuyItem {
//注意这里的product里只能有一个style(即产品的颜色)
private ProductInfo product;
private int number;
public ProductInfo getProduct() {
return product;
}
public void setProduct(ProductInfo product) {
this.product = product;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
@Override
public int hashCode() {
// final int prime = 31;
// int result = 1;
// result = prime * result + ((product == null) ? 0 : product.hashCode());
// return result;
//自己手动手写hashCode,代码如下:
String buyitemid = product.hashCode() + "-";
//如果product里有样式
if(product.getStyles().size()>0){
buyitemid += product.getStyles().iterator().next().getId();
}
return buyitemid.hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final BuyItem other = (BuyItem) obj;
if (product == null) {
if (other.product != null)
return false;
} else if (!product.equals(other.product))
return false;
//再手动添加一些判断条件,让此处不光通过product来判断两个BuyItem是否相同
//而且还要通过两个BuyItem中的product的styles来判断两个BuyItem是否相同
//如果一个product有样式,另一个product没有样式,则两个 BuyItem是不一样的
if(product.getStyles().size()!= other.product.getStyles().size()){
return false;
}
if(product.getStyles().size()>0){
//判断两个BuyItem中的product中的style是否相同
ProductStyle style = product.getStyles().iterator().next();
ProductStyle otherstyle = other.product.getStyles().iterator().next();
//这里用equals就可以了,不需要用 == 号判断
if(!style.equals(otherstyle)){
return false;
}
}
return true;
}
}
BuyCart.java:
package com.itcast.bean.product;
import java.util.ArrayList;
import java.util.List;
public class BuyCart {
private List<BuyItem> items = new ArrayList<BuyItem>();
/**
* 向购物项里添加一个购物项
* @param item
*/
public void addItem(BuyItem item){
//如果if判断的是含有的话就没法继续往下写了
// if(items.contains(item)){
// item.getNumber();
// }else{
// items.add(item);
// }
//如果if判读的是不含有的话就可以按照下面的这么写
if(!items.contains(item)){
items.add(item);
}
else{
for(BuyItem it : items){
if(it.equals(item)){
it.setNumber(it.getNumber()+item.getNumber());
//不应该是视频当中讲的it.setNumber(it.getNumber()+1);吧
break;
}
}
}
}
public List<BuyItem> getItems() {
return items;
}
/**
* 删除所有的购物项
*/
public void removeAll(){
items.clear();
}
/**
* 删除特定的购物项
*/
public void remove(BuyItem item){
if(items.contains(item)){
items.remove(item);
}
}
/**
* 获取应付的市场价总额
*/
public float getMarketPrice(){
float result = 0;
for(BuyItem item : items){
result += item.getProduct().getMaketPrice() * item.getNumber();
}
return result;
}
/**
* 获取应付的本站销售价总额
*/
public float getSellPrice(){
float result = 0;
for(BuyItem item : items){
result += item.getProduct().getSellPrice() * item.getNumber();
}
return result;
}
/**
* 获取节省的金钱总额
*/
public float getSavedPrice(){
return getMarketPrice() - getSellPrice();
}
}
以上内容就是关于购物车的源程序,通过这个简单例子,相信大家对购物车的源程序有了更进一步的理解,祝大家学习愉快!
下一篇:困扰JSP的难题