超市購物程序設計---面向對象編程邏輯思路,理解類和對象的典型例子---有點抽象,值得反復揣摩。
項目工程文件:
定義商品類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 }
這個例子邏輯比較復雜,對類和對象的認識要求較高,值得反復揣摩。