当前位置 : 主页 > 编程语言 > java >

javaHomework/Drink.java

来源:互联网 收集:自由互联 发布时间:2021-06-28
Drink.java package Drink;import java.util.*;import java.time.*;public class Drink implements Commodity{private String id;private String name;private double price;private int capacity;//容量private LocalDate productionDate;//生产日期//
Drink.java
package Drink;
import java.util.*;
import java.time.*;

public class Drink implements Commodity{
	private String id;
	private String name;
	private double price;
	private int capacity;//容量
	private LocalDate productionDate;//生产日期
	//boolean ismodifyflag;//用于判断是否修改数据

	//get set 函数
	public void setId(String id) {
		this.id=id;
	}
	public String getId() {
		return id;
	}
	public void setName(String name){
		this.name=name;
	}
	public String getname() {
		return name;
	}
	//抛出价格异常
	public void setPrice(double price) {
		if(price>=0){
			this.price=price;
		}else{//有符号,字母,负数需要处理
			throw new DrinkException("价格",price);
		}
		
	}
	
	public double getPrice() {
		return price;
	}
	public void setCapacity(int capacity) {
		if(capacity>=0){
		this.capacity=capacity;
		}else{//价格属性其实已经有接口中的静态方法inputInt确保输入的正整数
			int capacitydouble;
			capacitydouble=capacity;//int转double
			throw new DrinkException("容量",capacitydouble);//抛出容量异常
		}
	}
	
	public int getCapacity() {
			return capacity;
	}

	public void setProductionDate(LocalDate day) {
		this.productionDate=day;
	}
	public LocalDate getproductionDate() {
		return productionDate;
	}
	/*
	public boolean getIsModifyFlag() {}
	{
		return ismodifyflag;
	}
	public void setIsModifyFlag(boolean isModifyFlag) {
		this.ismodifyflag=isModifyFlag;
	}*/
	
	/*下面写构造方法*/
	public Drink() {}//无参构造方法,方便继承
	public Drink(String name,double price){//构造方法一
		this.name=name;
		this.price=price;
	}
	public Drink(String id,String name,double price,int capacity,LocalDate day) {//构造方法二
		this(name,price);//调用其他构造方法
		this.setId(id);
		this.setCapacity(capacity);
		this.setProductionDate(day);
	}
	/*输出对象信息*/
	public void disDrink() {
		System.out.println("条形码:"+this.getId());
		System.out.println("名称:"+this.getname());
		System.out.println("价格:"+this.getPrice());
		System.out.println("容量"+this.getCapacity());
		System.out.println("生产日期:"+this.productionDate);
	}
	/*鬼知道这个重载函数是什么意思*//*我好像懂什么意思,就是先输出括号里的字符串,再输出所有资料*/
	public void disDrink(String hint) {
		System.out.println(hint);
		disDrink();
	}

	/*设置对象参数*/
	public void inputDrink(Scanner sc) {
		System.out.print("条形码:");
		this.setId(sc.next());
		System.out.print("名称:");
		this.setName(sc.next());
		System.out.print("价格:");
		try {
			this.setPrice(sc.nextDouble());
			}catch(DrinkException se) {
				System.out.println("价格输入为负数,系统自动设置为默认值:0");
				this.setPrice(0);
			}catch(InputMismatchException se) {
				System.out.println("价格输入为非法字符,系统自动设置为默认值:0");
				this.setPrice(0);
				sc.nextLine();
			}
		/*价格输入抛错,符号,java.util.InputMismatchException
		字母,java.util.InputMismatchException
		价格负数,Drink.DrinkException: 价格异常  */
		
		System.out.print("容量:");
		this.setCapacity(Commodity.inputInt(sc));//调用接口静态方法,确保输入值为正整数
		while(this.capacity==0) {
			System.out.print("容量不能为0,请重新输入:");
			this.setCapacity(Commodity.inputInt(sc));
		}
		
		System.out.print("生产日期(yyyy-mm-dd):");
		this.setProductionDate(Commodity.inputDate(sc));
		
	}
	/*下面这个重载我还是不知道什么意思*//*跟上面那个一样*/
	public void inputDrink(Scanner sc,String hint) {
		System.out.println(hint);
		inputDrink(sc);
	}

	public void modifyDrink(Scanner sc) {//信息修改方法
		//boolean ismodifyflag=false;
		String stringIn;//字符串型输入
		sc.nextLine();//此行代码目的死消除缓冲去现有空字符对当前输入的影响    喵喵喵喵??
		System.out.println("开始修改饮料信息(直接回车不修改)——");//啊,上面那句是什么意思??
		System.out.print("原条形码:"+this.id+"\t修改为:");
		stringIn=sc.nextLine();
		if(!stringIn.equals("")) {//与空字符比较对应上面直接回车不修改
			this.setId(stringIn);
			//ismodifyflag=true;
		}
		System.out.print("原名称:\t"+this.name+"\t修改为:");
		stringIn=sc.nextLine();
		if(!stringIn.equals("")) {
			this.setName(stringIn);
			//ismodifyflag=true;
		}
		System.out.print("原价格:\t"+this.price+"\t修改为:");
		stringIn = sc.nextLine();
		if(!stringIn.equals("")) {  
			try {                                       //Integer.parseInt();将字符串转为整型
			this.setPrice(Double.parseDouble(stringIn));//Double.parseDouble();将字符串转为浮点型
			}catch(DrinkException se) {
				System.out.println("价格输入为负数,系统不予修改");
			}catch(NumberFormatException se) {
				System.out.println("价格输入为非法字符,系统不予修改");
			}
			//ismodifyflag=true;
		}
		/*价格输入抛错,符号,java.util.InputMismatchException
		字母,java.util.InputMismatchException
		价格负数,Drink.DrinkException: 价格异常  */
		
	
		System.out.print("原容量:"+this.capacity+"\t修改为:");
		stringIn=sc.nextLine();
		int oldCapacity=this.capacity;
		if(!stringIn.equals("")) {
			try {
				this.setCapacity(Integer.parseInt(stringIn));
			}catch(DrinkException se) {
				System.out.println("容量输入为非法字符,系统不予修改");
			}catch(NumberFormatException se) {
				System.out.println("容量输入为非法字符,系统不予修改");
			}
			//ismodifyflag=true;
			if(this.capacity==0) {//限制0输入
				System.out.println("容量不能为0,系统不予修改");
				this.setCapacity(oldCapacity);
				//ismodifyflag=false;
			}
			
		}
		
		System.out.print("原生产日期:"+this.productionDate+"\t修改为(yyyy-mm-dd):");
		stringIn=sc.nextLine();
		if(!stringIn.equals("")) {
			boolean flag;
			flag=Commodity.inputDate(stringIn);
			if(flag) {
			this.setProductionDate(LocalDate.parse(stringIn));//字符串转换为日期格式
			//ismodifyflag=true;
			}else {
				System.out.println("日期输入错误,系统不予修改");
			}
		}
	}

	
	
	/*private String id;
	private String name;
	private double price;
	private int capacity;//容量
	private LocalDate productionDate;//生产日期
	*/
	
	/*void regist();//商品登记
	  void inspection();//参加检测
	  default String getResult(String course);//查询检测结果
	 */
	public void regist(){//重写接口regist();商品登记方法
		System.out.println(this.name+"在"+Calendar.getInstance().getTime()+"登记入库");
	}//Calendar.getInstance().getTime();获取当前时间并格式化
	
	public void inspection() {};
	public void inspection(String course){//重写接口inspertion();参加检测方法
		System.out.println(this.name+"参加"+course+"检测");//缺少检测项目
	}
	
	
	//返回类型为字符串型
	public String getResult(String course) {
		
		if(course.equals("容量")) {
			return Integer.toString(this.capacity);
		}else {
			System.out.println("该产品不参加该项测试");
			return "该产品不参加该项测试";
		}
	}
	public String getColor() {
		// TODO Auto-generated method stub
		return null;
	}
	
	public int getSweetness() {
		// TODO Auto-generated method stub
		return 0;
	}
	
}
网友评论