java每日一题-day02

模拟超市购物

  • 要求:实现超市购物功能,如果商品在超市,则提示购物者买到了这件商品,没有则提示购物者白跑一趟。

事前分析

  • 超市中的对象:三个对象,超市(Market);购物者(Person);商品(Product);
  • 抽离对象属性:
  • 超市:超市名marketName;物品仓库:数组productArr;方法:卖货品(sell)返回值Produce
  • 购物者:属性:姓名(name);方法:购物(shopping)
  • 商品:属性:商品名(proName)

具体实现

商品类实现封装属性商品名

package com.itheima.market;

public class Product {
    private String proName;

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }
}

超市类实现

package com.itheima.market;

public class Market {
    private String marketName;
    private Product[] productArr;

    public String getMarketName() {
        return marketName;
    }

    public void setMarketName(String marketName) {
        this.marketName = marketName;
    }

    public Product[] getProductArr() {
        return productArr;
    }

    public void setProductArr(Product[] productArr) {
        this.productArr = productArr;
    }

    Product sell(String name) {
        for (int i = 0; i < productArr.length; i++) {
            if (productArr[i].getProName() == name) {
                return productArr[i];
            }
        }
        return null;
    }
}

  • 实现要点:
  1. 封装数组对象
  2. sell出售商品方法的实现,返回类型为商品,传入值为商品名称,传入要买的商品名称,遍历定义的数组商品,if语句判断是否有相同的商品。如果存在商品,返回数组遍历得到的商品。没有,则返回为null,代表不存在此商品。
    购物者实现
package com.itheima.market;

public class Person {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    //    人去超时买商品
    Product shooping(Market market, String name) {
        return market.sell(name);
    }
}

实现要点:

  • 购物者的购买方法,需要购物者去哪个超市买什么。将商品传入,之后调用market的sell方法
    测试类
package com.itheima.market;

public class Shopping {
    public static void main(String[] args) {
        Product p1 = new Product();
        Product p2 = new Product();
        Product p3 = new Product();
        Product p4 = new Product();
        p1.setProName("豆浆机");
        p2.setProName("油烟机");
        p3.setProName("洗衣机");
        p4.setProName("电视机");
        Market market = new Market();
        market.setMarketName("开心小店");
        market.setProductArr(new Product[]{p1, p2, p3, p4});
//        创建人对象
        Person p = new Person();
        p.setName("韩强");
        Product result = p.shooping(market, "豆浆机");
//        数据结果进行判断
        if (result != null) {
            System.out.println(p.getName() +
                    "在" + market.getMarketName() +
                    "买到了" + result.getProName());
        } else {
            System.out.println(p.getName() + "白跑一趟," + "在"
                    + market.getMarketName() + "什么都没有买到");
        }

    }
}

结束感言

  1. 写程序事前分析很重要,你要先有一个思路来去写这个程序,在写之前定好你要写的对象,对象所具有的属性,以及需要实现的方法。
  2. 写完之后,过一段时间试着自己实现一些功能纯敲代码不看书。这时候敲代码才是有效代码。这代表着你正在实现的思路。
  3. 如果你觉得时间紧迫,但你依然需要慢下来静下心写代码,写笔记。千万不要跳着看课程,一目十行,不求甚解。
  4. 兴趣是最好的老师,写代码是一个思维的过程。目前你可以不理解,很正常,学习的时候一定要一步一步来,如果你不是天才的话。
  5. 每天都要敲代码,几天不敲就容易遗忘。
  6. 先把基础打好再去看更深的东西,框架,数据库,服务端开发基本都建立在基础之上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值