⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j02080306.java

📁 经典java教材《java完美经典》一书中源码的完全收集
💻 JAVA
字号:
import java.lang.*;

class j02080306
{	 
	private Bill[] Bills = null;
	
	public Bill[] getBills()
	{
		if(Bills == null)
			System.out.println("客人您尚未点餐");
		else
			System.out.println("已有" + Bills.length + " 位点餐");
		
		return Bills;	
	}	
	
	public Bill orderOne(int meal,int dr)
	{		
		Bill aBill = new Bill(meal,dr);
		return aBill;
	}
	
	public double getTotal(boolean MVP)
	{
		double total = 0;
		if(Bills == null)
			return total;
		
		for(int x =0;x<Bills.length;x++)
		{
			total = total + Bills[x].drinkCost + Bills[x].mealCost ;			
		}								 
		if(MVP)
		{
			System.out.println("持MVP卡消费打九折");
			total = total * 90/100;
		}
		return total;
	}
	
	public String getAllDetail()
	{
		String allDetail = "帐单明细:\n";
		if( Bills == null)
		{
			return "客人您尚未点餐";
		}
		else
		{
			for(int x =0;x<Bills.length;x++)
			{ 
				allDetail = allDetail + "第 " + (x+1) + " 位:" 
				            + Bills[x].getDetail() + "\n";
			}
			return allDetail;
		}
	}	

	public static void main(String[] para)
  {		
		j02080306 lunch = new j02080306();
		lunch.Bills = new Bill[]{lunch.orderOne(2,0),lunch.orderOne(1,1),lunch.orderOne(3,2)};
		System.out.println("查看点餐内容~~~");
		System.out.println(lunch.getAllDetail());		
		Bill[] checkBills = lunch.getBills();   //返回值是数组类型的引用
		System.out.println("更改第 1 人点餐内容~~~");
		checkBills[0] = lunch.orderOne(2,3);  //checkBills 与 Bills 数组引用同一个实例
		System.out.println(lunch.getAllDetail());
		System.out.println("总共是 " + lunch.getTotal(true) + " 元");
  }
}

/* ===辅助类(一般类区)=====*/
class Bill
{
	String drinks;
	String meal;
	int drinkCost;
	int mealCost;

	public Bill(int mealCode,int drinkCode)
	{
		setMeal( mealCode );		
		setDrinks( drinkCode );
	}

	private void setMeal(int code)
	{
		switch(code)
		{
			case 1:
				meal = "A 餐";  mealCost = 145;  break;				
			case 2:
				meal = "B 餐";  mealCost = 115;  break;
			case 3:
				meal = "C 餐";  mealCost = 135;  break;				
			default:
				meal = null;   mealCost = 0;			
		}
	}	
		
	private void setDrinks(int code)
	{
		switch(code)
		{
			case 1:
				drinks = "可乐";  drinkCost = 25;  break;				
			case 2:
				drinks = "红茶";  drinkCost = 30;  break;
			case 3:
				drinks = "咖啡";  drinkCost = 40;  break;				
			default:
				drinks = null;  drinkCost = 0;				
		}
	}
	
	public String getDetail()
	{		
		String detail ;
		
		if(mealCost==0 && drinkCost==0)
				return "不消费";
		else if( meal == null )
				detail = drinks + drinkCost +" 元";
		else if( drinks == null )
				detail = meal + mealCost +" 元" ;
		else		
				detail = meal + mealCost +" 元 "+ drinks + drinkCost +" 元";
	
		return detail;
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -