超市购物程序设计---面向对象编程逻辑思路,理解类和对象的典型例子---有点抽象,值得反复揣摩。 项目工程文件: 定义商品类Product.java: 1 package cn.ftf.shop; 2 3 public class Product { 4 priv
超市购物程序设计---面向对象编程逻辑思路,理解类和对象的典型例子---有点抽象,值得反复揣摩。
项目工程文件:
定义商品类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 }
这个例子逻辑比较复杂,对类和对象的认识要求较高,值得反复揣摩。