模拟超市购物
- 要求:实现超市购物功能,如果商品在超市,则提示购物者买到了这件商品,没有则提示购物者白跑一趟。
事前分析
- 超市中的对象:三个对象,超市(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;
}
}
- 实现要点:
- 封装数组对象
- 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() + "什么都没有买到");
}
}
}
结束感言
- 写程序事前分析很重要,你要先有一个思路来去写这个程序,在写之前定好你要写的对象,对象所具有的属性,以及需要实现的方法。
- 写完之后,过一段时间试着自己实现一些功能纯敲代码不看书。这时候敲代码才是有效代码。这代表着你正在实现的思路。
- 如果你觉得时间紧迫,但你依然需要慢下来静下心写代码,写笔记。千万不要跳着看课程,一目十行,不求甚解。
- 兴趣是最好的老师,写代码是一个思维的过程。目前你可以不理解,很正常,学习的时候一定要一步一步来,如果你不是天才的话。
- 每天都要敲代码,几天不敲就容易遗忘。
- 先把基础打好再去看更深的东西,框架,数据库,服务端开发基本都建立在基础之上。