一、实验目的
运用和掌握接口、异常处理、常用实用类和集合课程中的绝大部分技术
二、实验内容
1,创建一个水果接口,接口中定义水果被购买的行为,然后编写多个水果接口的实现类,例如Apple()、Banana()、Pear()。再创建一个主类,主类中执行各水果接口实现类的Buy()方法。
2,在主类中,创建异常处理方法check(),用于检测购买水果的斤数
3,在主类中,实例化Scanner类,用来实现用户的输入
三、实验环境
OS:Windows 10、编译环境:eclipse
四、实验过程描述
下面展示一些 内联代码片
。
Project:FruitShop
主类:FruitShop.java
Fruit接口:Fruit.java
各实现类:Apple.java、Banana.java、Pear.java
// FruitShop.java(源代码):
import java.util.Scanner;
public class FruitShop {
public static double check(double i) throws Exception {// 创建check方法,用于检测购买水果的斤数
if (i < 0)// 如果i小于0
throw new Exception("所购买的水果不能小于0斤!");// 抛出一个Exception异常对象
return i;
}
public static void main(String[] args) {
int x = 0;// 购买水果选择项
double i = 0;// 购买斤数
double sum = 0;// 结算金额
Fruit ap = new Apple();// 实例化Apple类
Fruit ba = new Banana();// 实例化Banana类
Fruit pe = new Pear();// 实例化Pear类
Scanner sc = new Scanner(System.in);// 实例化Scanner类
System.out.println("请选择你需要购买的水果:(苹果1、香蕉2、雪梨3)");
x = sc.nextInt();// 输入所要购买水果的数字
switch (x) {// 根据输入的数值,选择相应的输出语句
case 1: {
System.out.println("请输入你需要多少斤这种水果:");
i = sc.nextDouble();// 输入要购买的斤数
try {
double a = check(i);// 调用check方法
sum = ap.Buy(i);
System.out.println("合计:" + sum + "元");
} catch (Exception e) {// 捕获Exception异常
System.out.println("数据逻辑错误!");
System.out.println("原因:" + e.getMessage());
}
break;
}
case 2: {
System.out.println("请输入你需要多少斤这种水果:");
i = sc.nextDouble();
try {
double a = check(i);
sum = ba.Buy(i);
System.out.println("合计:" + sum + "元");
} catch (Exception e) {// 捕获Exception异常
System.out.println("数据逻辑错误!");
System.out.println("原因:" + e.getMessage());
}
break;
}
case 3: {
System.out.println("请输入你需要多少斤这种水果:");
i = sc.nextDouble();
try {
double a = check(i);
sum = pe.Buy(i);
System.out.println("合计:" + sum + "元");
} catch (Exception e) {// 捕获Exception异常
System.out.println("数据逻辑错误!");
System.out.println("原因:" + e.getMessage());
}
break;
}
default:
System.out.println("以上没有匹配的");
}
}
}
// Fruit.java (源代码):
public interface Fruit {//创建Fruit接口
public double Buy(double i);
}
// Apple.java (源代码):
public class Apple implements Fruit {//Apple实现接口
public double Buy(double i) {
double price = 5;// 水果单价
double sum = price * i;// 水果总价
return sum;
}
}
// Banana.java (源代码):
public class Banana implements Fruit {// Banana实现接口
public double Buy(double i) {
double price = 6;// 水果单价
double sum = price * i;// 水果总价
return sum;
}
}
// Pear.java (源代码):
public class Pear implements Fruit {// Pear实现接口
public double Buy(double i) {
double price = 7;// 水果单价
double sum = price * i;// 水果总价
return sum;
}
}