超市购物程序设计---面向对象编程逻辑思路,理解类和对象的典型例子---有点抽象,值得反复揣摩。
项目工程文件:
定义商品类Product.java:
1 package cn.ftf.shop;
2
3 public class Product {
4 private String ProName;
5
6 public String getProName() {
7 return ProName;
8 }
9
10 public void setProName(String proName) {
11 ProName = proName;
12 }
13
14
15
16 }
定义超市类Market.java:
1 package cn.ftf.shop;
2
3 public class Market {
4 private String marketName;
5 private Product[] productArr; //私有属性,商品类型的数组
6 public String getMarketName() {
7 return marketName;
8 }
9 public void setMarketName(String marketName) {
10 this.marketName = marketName;
11 }
12 public Product[] getProductArr() {
13 return productArr;
14 }
15 public void setProductArr(Product[] productArr) { //传入数组
16 this.productArr = productArr;
17 }
18 Product sell(String name) { //返回值的类型是商品
19 for(int i=0;i<productArr.length;i++) {
20 if(productArr[i].getProName()==name) {
21 return productArr[i];
22 }
23 }
24 return null;
25 }
26 }
定义购物者类Person.java
1 package cn.ftf.shop;
2
3 public class Person {
4 private String name;
5
6 public String getName() {
7 return name;
8 }
9
10 public void setName(String name) {
11 this.name = name;
12 }
13 Product shopping(Market market,String name) {
14 return market.sell(name);
15 }
16
17 }
测试类TestShopping.java
1 package cn.ftf.shop;
2
3 public class TestShopping {
4 public static void main(String[] args) {
5 Product p1=new Product();
6 Product p2=new Product();
7 Product p3=new Product();
8 Product p4=new Product();
9 Product p5=new Product();
10 Product p6=new Product();
11 p1.setProName("面包");
12 p2.setProName("牛奶");
13 p3.setProName("咖啡");
14 p4.setProName("火腿");
15 p5.setProName("可乐");
16 p6.setProName("冰激凌");
17
18 Market m=new Market();
19 m.setMarketName("廷飞超市");
20 m.setProductArr(new Product[] {p1,p2,p3,p4,p5,p6});
21
22 Person pp=new Person();
23 pp.setName("小房");
24 Product result=pp.shopping(m, "牛");
25 if(result!=null){
26 System.out.println(pp.getName()+"已经买到"+result.getProName());
27 }
28 else {
29 System.out.println("白跑了一趟,什么都没买到!");
30 }
31
32 }
33
34 }
这个例子逻辑比较复杂,对类和对象的认识要求较高,值得反复揣摩。