简易购物车实体类的设计 博客分类: java 购物车实体类
程序员文章站
2024-02-12 15:29:28
...
一 购物车类(Cart)的设计
二 代码
1、Cart类
package entity;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//购物车类
public class Cart {
//购买商品的集合
private HashMap<Items,Integer> goods;
//购物车的总金额
private double totalPrice;
//构造方法
public Cart()
{
goods = new HashMap<Items,Integer>();
totalPrice = 0.0;
}
public HashMap<Items, Integer> getGoods() {
return goods;
}
public void setGoods(HashMap<Items, Integer> goods) {
this.goods = goods;
}
public double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(double totalPrice) {
this.totalPrice = totalPrice;
}
//添加商品进购物车的方法
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;
}
//删除商品的方法
public boolean removeGoodsFromCart(Items item)
{
goods.remove(item);
calTotalPrice(); //重新计算购物车的总金额
return true;
}
//统计购物车的总金额
public double calTotalPrice()
{
double sum = 0.0;
Set<Items> keys = goods.keySet(); //获得键的集合
Iterator<Items> it = keys.iterator(); //获得迭代器对象
while(it.hasNext())
{
Items i = it.next();
sum += i.getPrice()* goods.get(i);
}
this.setTotalPrice(sum); //设置购物车的总金额
return this.getTotalPrice();
}
public static void main(String[] args) {
//先创建两个商品对象
Items i1 = new Items(1,"沃特篮球鞋","温州",200,500,"001.jpg");
Items i2 = new Items(2,"李宁运动鞋","广州",300,500,"002.jpg");
Items i3 = new Items(1,"沃特篮球鞋","温州",200,500,"001.jpg");
Cart c = new Cart();
c.addGoodsInCart(i1, 1);
c.addGoodsInCart(i2, 2);
//再次购买沃特篮球鞋,购买3双
c.addGoodsInCart(i3, 3);
//变量购物商品的集合
Set<Map.Entry<Items, Integer>> items= c.getGoods().entrySet();
for(Map.Entry<Items, Integer> obj:items)
{
System.out.println(obj);
}
System.out.println("购物车的总金额:"+c.getTotalPrice());
}
}
2、Items类
package entity;
//商品类
public class Items {
private int id; // 商品编号
private String name; // 商品名称
private String city; // 产地
private int price; // 价格
private int number; // 库存
private String picture; // 商品图片
//保留此不带参数的构造方法
public Items()
{
}
public Items(int id,String name,String city,int price,int number,String picture)
{
this.id = id;
this.name = name;
this.city = city;
this.picture = picture;
this.price = price;
this.number = number;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
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;
}
}
public String toString()
{
return "商品编号:"+this.getId()+",商品名称:"+this.getName();
}
}
三 测试结果
商品编号:1,商品名称:沃特篮球鞋=4
商品编号:2,商品名称:李宁运动鞋=2
购物车的总金额:1400.0