商苑面馆:Java接口 补充练习
来自CloudWiki
购物车
作用
在网上商城中,购物车的作业很重要。
用户把想买的商品放到购物车后,
到最后一齐将购物车中的商品结算。
实现思路
也是遵循和上一个实训相同的思路,
先建立购物车的抽象接口CartDao,
然后再建立抽象接口的实现类 ,接口的实现类里,数据存储可用Arraylist ,LinkedList,HashMap等多种形式,这里选用HashMap。
通过HashMap的添加元素、查看元素等方法,实现购物车的增删改查。
面馆实训
新建接口CartDao
package dao; import entity.*; public interface CartDao { public void addFood(Food f1, Integer num);//添加商品 public void delFood(Food g);//删除商品 public void queryFood();//查询购物车内已放商品 public Integer hasFood(Food g);//查询购物车内是否已有某件商品 public void modifyFood(Food g,Integer num);//修改购物车内该种商品的数量 }
建立接口的实现类CartDaoMap
package dao; import java.util.*; import entity.Food; public class CartDaoMap implements CartDao { private HashMap<Food,Integer> f = new HashMap<>(); public CartDaoMap(){ } public CartDaoMap(HashMap<Food,Integer> f){ this.f= f; } /** * 向购物车中添加商品 * @param g 向购物车中添加商品 * @return 值为空 */ public void addFood(Food g,Integer n){ } /** * 向购物车中删除商品 * @param Food 向购物车中删除商品 * @return 值为空 */ public void delFood(Food g){ //将数组中myFood条目对应的商品数量减为0 } /** * 遍历查询购物车中的商品 * @param 值为空 * @return 值为空 */ public void queryFood(){ } /** * 查询购物车中的商品 * @param myFood 带查询的商品 * @return 该商品的数量 */ public Integer hasFood(Food g){ // 遍历所有的书籍信息 } /** * 修改购物车中商品的数量 * @param g待修改的商品 * @param n 该商品要增加或减少的数量 * @return 布尔值,表明是否修改成功 */ public void modifyFood(Food g,Integer n){ //修改某种商品在购物车中的数目 } /** * 返回该类的字符串形式 * @return 返回该类的字符串形式 */ @Override public String toString() { } }
测试类Main
Main.class:
package dao; import java.util.Scanner; import entity.*; ; /*本类对应实训: */ public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //数组初始化 Food f1 = new Food("炸酱面",12.0,3); Food f2 =new Noodle("臊子面",14.0,2,"麻辣"); Food f3 = new Noodle("刀削面",10.0,5,"微辣"); //添加购物车 CartDao cart= new CartDaoMap(); Integer num = 2;Integer num2 =1; cart.addFood(f1,num);//购物车添加商品 System.out.println("购物车添加了商品:"+f1.getName()+" "+num.toString()); cart.addFood(f2,num);//购物车添加商品 System.out.println("购物车添加了商品:"+f2.getName()+" "+num.toString()); cart.delFood(f1);//购物车删除商品 System.out.println("购物车删除了商品:"+f1.getName()); cart.modifyFood(f1, num2);//修改购物车车内商品1的的数量 System.out.println("购物车修改了商品:"+f1.getName()+" 的数量:增加 "+num2.toString()); cart.queryFood();//列出购物车现有商品 if(cart.hasFood(f3)==0){ System.out.println("商品 "+f3.getName()+ "现在并不在购物车内,是否添加 ?"); } scan.close(); } }