超市购物程序设计---面向对象编程逻辑思路,理解类和对象的典型例子---有点抽象,值得反复揣摩。

超市购物程序设计---面向对象编程逻辑思路,理解类和对象的典型例子---有点抽象,值得反复揣摩。

项目工程文件:


 

 

定义商品类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 }

这个例子逻辑比较复杂,对类和对象的认识要求较高,值得反复揣摩。

posted @ 2019-07-07 19:08  codeFlyer  阅读(1832)  评论(0编辑  收藏  举报