使用面向对象的概念 描述出如下生活场景!
小明 到超市买东西,所有买到的东西  放到了购物车之中,到最后 一起结账!

解决方案 »

  1.   

    第一种方法:可以将购物信息存到session和数据库
    第二种方法:可以将购物信息存到cookie里
      

  2.   

    1、有一个常量对象记录每种商品的  id  和 价格的 映射关系
    2、购物车,可以是hashmap  key为商品id  value为 商品数量
    3、定义一个消费者类,对购物车加入、删除、修改等功能
    4、结算功能,hashMap的 entry,遍历一次就over了
    貌似就这样了
      

  3.   


    package com.ssj.test;import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;public class Shopping {
    private ShopCar shopCar ;
    public Shopping() {
    shopCar = new ShopCar();
    }
    public void add(String id , int num)
    {
    shopCar.add(id, num);
    }

    public void alter(String id , int num){
    shopCar.alter(id, num);
    }
    public void del(String id){
    shopCar.del(id);
    }
    /**
     * 结算
     */
    public void slmt(){
    int spend = 0;
    Set<Entry<String, Integer>> entrys = shopCar.map.entrySet();
    for (Entry<String, Integer> entry : entrys) {
    int num = entry.getValue();
    int price = Commodity.getPrice(entry.getKey());
    spend+=num*price;
    System.out.println("商品["+entry.getKey()+"],数量["+num+"],单价["+price+"],小计["+num*price+"]");
    }
    System.out.println("结算总共消费"+spend+"元");
    shopCar.map.clear();
    }

    class ShopCar{
    Map<String, Integer> map = new HashMap<String, Integer>();
    public void add(String id , int num){
    if(map.get(id)==null)
    map.put(id, num);
    else
    map.put(id, map.get(id)+num);
    System.out.println("增加购物车中商品["+id+"]数量为["+map.get(id)+"]");
    }

    public void alter(String id , int num){
    map.put(id, num);
    System.out.println("修改购物车中商品["+id+"]数量为["+num+"]");
    }

    public void del(String id )
    {
    map.remove(id);
    System.out.println("删除购物车中商品["+id+"]");
    }
    }

    static final class Commodity{
    public static final Map<String,Integer> map = new HashMap<String,Integer>();
    static{
    map.put("PAPER", 80) ;
    map.put("THOOTHBRUSH", 120) ;
    map.put("WATER", 300) ;
    }

    public static int getPrice(String id){
    return map.get(id);
    }
    }

    public static void main(String[] args) {
    Shopping shopper =  new Shopping();
    //买5个纸团
    shopper.add("PAPER", 5);
    //买2个牙刷
    shopper.add("THOOTHBRUSH", 2);
    //买2桶水
    shopper.add("WATER",2);
    //水买少了,再买10桶
    shopper.add("WATER",1);
    //算了点的手疼,直接把水改成12桶吧
    shopper.alter("WATER", 12);
    //牙刷昨天买了……删了吧
    shopper.del("THOOTHBRUSH");
    //做结算
    shopper.slmt();
    }
    }自己看一看,大概的模式
      

  4.   

    下面只是一个思想,没有完全封装好,getters setters没有写,意思是这个意思,要仔细考虑,还有很多工作要做,给你一个思路。
    public class TestObject { public static void main(String[] args) {
    Market ChaoShi = new Market();//创建一个超市
    Person XiaoMing = new Person("xiaoming");//创建一个顾客小明
    XiaoMing.goToMarket(ChaoShi);//小明去超市
    XiaoMing.buyGoods("大白菜");//买东西,并把东西放到购物车
    ChaoShi.account(XiaoMing.m.ShoppingCat);//结账
    }}class Market{
    private String goods;//商品
    String ShoppingCat;//购物车

    Market(){
    this.goods = "大白菜";//超市里面默认的商品
    }

    //结账方法
    public void account(String ShoppingCat){ }


    }class Person{
    private String name;//姓名
    Market m;//超市

    Person(String name){
    this.name = name;
    }

    //去超市的方法
    public void goToMarket(Market m){ }

    //买东西的方法
    public void buyGoods(String goods){
    this.m.ShoppingCat = goods;//买了东西并放到购物车
    }
    }