1. 程式人生 > >JAVA之超市購物的栗子

JAVA之超市購物的栗子

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;
	}
	

}