“商苑面馆:Java接口 补充练习”的版本间的差异
来自CloudWiki
(→建立接口的实现类CartDaoMap) |
|||
第15行: | 第15行: | ||
通过HashMap的添加元素、查看元素等方法,实现购物车的增删改查。 | 通过HashMap的添加元素、查看元素等方法,实现购物车的增删改查。 | ||
==面馆实训== | ==面馆实训== | ||
+ | ===新建接口CartDao=== | ||
+ | <nowiki>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);//修改购物车内该种商品的数量 | ||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | </nowiki> | ||
+ | ===建立接口的实现类CartDaoMap=== | ||
+ | <nowiki>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() { | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | }</nowiki> | ||
+ | |||
+ | ===测试类Main=== | ||
+ | Main.class: | ||
+ | |||
+ | <nowiki>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(); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | }</nowiki> | ||
+ | ==完整代码== | ||
===新建接口CartDao=== | ===新建接口CartDao=== | ||
<nowiki>package dao; | <nowiki>package dao; |
2019年4月29日 (一) 00:22的版本
目录
购物车
作用
在网上商城中,购物车的作业很重要。
用户把想买的商品放到购物车后,
到最后一齐将购物车中的商品结算。
实现思路
也是遵循和上一个实训相同的思路,
先建立购物车的抽象接口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(); } }
完整代码
新建接口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(); } }