JAVA之超市購物的栗子
阿新 • • 發佈:2019-01-26
1:分析
1.通過分析,可以得出,此程式包括超市,商品,購物者,三個物件,既然是去購物,那先定義商品物件2.由於所有的商品是在超市裡賣的,所以還要定義一個超市物件,每個超市都要有自己的名稱和倉庫儲存商品,倉庫可用陣列表示,超市主要是賣東西,所以還要有一個賣的的方法
3.定義一個Person物件,該物件有姓名,以及去哪個超市買什麼?
4.測試類,建立商品物件,超市物件,人,並使用物件中的方法實現購物
2:程式碼
package yu; public class Main { public static void main(String[] args) { Product p1=new Product("電視機"); Product p2=new Product("空調"); Product p3=new Product("豆漿機"); Market m=new Market("華聯超市"); //Product [] productArr=new Product[]{p1,p2,p3}; Product [] productArr={p1,p2,p3}; m.setProductArr(productArr); //建立人,給人複製 Person p=new Person("小王"); //呼叫購物方法,指定超市和商品名,得到購物結果 Product result=p.shopping(m,"空調"); if (result!=null) { System.out.println(p.getName()+"在"+m.getMarketName()+"買到了"+result.getProName()); }else { System.out.println(p.getName()+"白跑了一趟,在"+m.getMarketName()+"什麼也沒買到"); } } } //商品類 class Product{//商品 private String proName;//商品名 //自動生成的構造 public Product(String proName) { super(); this.proName = proName; } //自動生成的get set public String getProName() { return proName; } public void setProName(String proName) { this.proName = proName; } } //超市類 class Market{ private String marketName;//超市名字 private Product[] productArr;//超市的倉庫,用於儲存商品 public Product sell(String name) {//賣貨,指定商品名 //遍歷倉庫的每一個商品 for (int i = 0; i < productArr.length; i++) { //找到商品 if (productArr[i].getProName()==name) { return productArr[i]; } } return null;//迴圈結束都沒有找到商品,返回null表示沒有該商品 } //自動生成的構造 public Market(String marketName) { super(); this.marketName = marketName; } //自動生成的get set 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; } } //購物者 class Person{ private String name;//人名 public Person(String name) { this.name=name; } //購物,指定去哪個超市,商品名 public Product shopping(Market market,String name) { //呼叫超市的賣貨方法,指定商品名,把賣出的結果返回 return market.sell(name); } //自動呼叫get set public String getName() { return name; } public void setName(String name) { this.name = name; } }