一、实验目的
运用和掌握接口、异常处理、常用实用类和集合课程中的绝大部分技术
二、实验内容
1,创建一个水果接口,接口中定义水果被购买的行为,然后编写多个水果接口的实现类,例如Apple()、Banana()、Pear()。再创建一个主类,主类中执行各水果接口实现类的Buy()方法。
2,在主类中,创建异常处理方法check(),用于检测购买水果的斤数
3,在主类中,实例化Scanner类,用来实现用户的输入
三、实验环境
OS:Windows 10、编译环境:eclipse
四、实验过程描述
下面展示一些内联代码片
。
Project:FruitShop主类:FruitShop.javaFruit接口: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小于0throw 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;}}