Java实验之接口与实现、内部类与异常类

Java实验之接口与实现

评价成绩

体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考 察一个班级的某科 目的考试情况时,是计算全班同学的平均成绩。Gymastics类 和 school类都实现了ComputcrAverage接 口,但实现的方式不同。
运行结果:

package com.company;
interface CompurerAverage {public double average(double x[]);
}
class Gymnastics implements CompurerAverage {public double average(double x[]) {int count=x.length;double aver=0,temp=0;for(int i=0;i<count;i++){for(int j=i;j<count;j++){if(x[j]<x[i]) {temp=x[j];x[j]=x[i];x[i]=temp;}}}for(int i=1;i<count-1;i++){aver=aver+x[i];}if(count>2)aver=aver/(count-2);elseaver=0;return aver;}
}class School implements CompurerAverage {public double average(double[] x) {int count=x.length;double aver=0;for(int i=0;i<count;i++){aver=aver+x[i];}aver=aver/count;return aver;}
}
public class Main{public static void main(String arg[]){double a[]={9.89,9.88,9.99,9.12,9.69,9.76,8.97};double b[]={89,56,78,90,100,77,56,45,36,79,98};CompurerAverage computer;computer=new Gymnastics();double result=computer.average(a);System.out.printf("体操选手最后得分:%5.3f\n",result);computer = new School();result = computer.average(b);System.out.printf("班级考试平均分数:%-5.2f",result);}
}

Java实验之内部类与异常类

内部类

在类中声明的类,被称为内部类
包含内部类的类成为内部类的外嵌类

异常类

异常就是程序运行时出现非常规现象
异常对象可调用如下方法得到或输出有关异常信息

public String getMessage();
public void printStackTrace();
public String toString();

try~catch语句用法

try部分:抛出异常对象或调用某个可能抛出对象的方法,且爆出异常对象。
catch部分:发生异常后的处理

try~catch语句格式

try{包含可能发生异常的语句
}
catch(ExceptionSubClass1 e){发生异常后的处理1……
}
catch(ExceptionSubClass12 e){发生异常后的处理2……
}

内部优惠券

手机专卖店为了促销 自己的产品,决定发行 内部购物券,但其他商场不能发行该购物 券 。编写一个 Mobi1eshop类 (模拟手机专卖店),该类 中有一个名字为 ImerPurchaseMoney
的内部类 (模拟 内部购物券 )。
运行结果:

package com.company;
class MobileShop{InnerPurchaseMoney purchaseMoney1;InnerPurchaseMoney purchaseMoney2;//private int mobileAmount;//手机数量MobileShop(){purchaseMoney1=new InnerPurchaseMoney(20000);purchaseMoney2=new InnerPurchaseMoney(10000);}void setMobileAmount(int m){mobileAmount=m;}int getMobileAmount(){return mobileAmount;}class InnerPurchaseMoney{int moneyValue;InnerPurchaseMoney(int m){moneyValue=m;}void buyMobile(){if (moneyValue >= 20000) {mobileAmount=mobileAmount-6;System.out.println("用价值"+moneyValue+"的内部购物券买了6部手机");}else if(moneyValue<20000&&moneyValue>=10000){mobileAmount=mobileAmount-3;System.out.println("用价值"+moneyValue+"的内部购物券买了3部手机");}}}
}public class Main {public static void main(String[] args) {MobileShop shop=new MobileShop();shop.setMobileAmount(30);System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机");shop.purchaseMoney1.buyMobile();shop.purchaseMoney2.buyMobile();System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机");}
}

检查危险品

车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。 编写一个 Exception的 子类 Dange吨xception,该 子类可 以创建异常对象,该异常对象 调用 toshow()方 法输出 “属于危险品”。 编写一个 Machinc类 ,该类的方法 checkBag(Goods goods)当 发现参数 goods是 危险品 时 (goods的 怂Danger属 性是 tme)将抛 出 DangerException异 常。 程序在主类 的 Ⅲ1ho方法 中的 岬吒atch语 旬 的 W部 分让 Machhe类 的实例调用
GhcρkBag(Goods goods)方 法,如果发现危险品就在 try-catch语 句的 catch部 分处理危险品。
运行结果:

// DangerException.java
public class DangerException extends Throwable {String message;public DangerException(){message="危险品!";}public void toShow(){System.out.print(message+"");}
}
// Machine.java
public class Machine {public void checkBag(Goods goods) throws DangerException{if(goods.isDanger){DangerException danger=new DangerException();throw danger;}else {System.out.print(goods.getName()+"不是危险品!");}}
}
// Goods.java
public class Goods {public boolean isDanger;String name;public void setDanger(boolean boo){isDanger=boo;}public  void setName(String s){name=s;}public String getName(){return name;}
}
// Main.java
public class Main {public static void main(String[] args) {Machine machine=new Machine();String name[]={"苹果","炸药","西服","硫酸","手表","硫黄"};Goods []goods=new Goods[name.length];//检查6件物品for(int i=0;i<name.length;i++){goods[i]=new Goods();if(i%2==0){goods[i].setDanger(false);goods[i].setName(name[i]);}else {goods[i].setDanger(true);goods[i].setName(name[i]);}}for(int i=0;i< goods.length;i++){try{machine.checkBag((goods[i]));System.out.println(goods[i].getName()+"检查通过");}catch (DangerException e){e.toShow();System.out.println(goods[i].getName()+"被禁止!");}}}
}

Java实验之接口与实现、内部类与异常类相关推荐

  1. Java实用教程笔记 内部类与异常类

    内部类与异常类 Review Note 只有我能用,不希望别人用(内部类的基本思想) .class文件的生成个数 匿名类 匿名类都是一次性的(当前这一次,以后不能用) Conclusion Revie ...

  2. Java内部类与异常类(上机实践二)

    Java内部类与异常类(上机实践二) 实践一 内部购物卷 手机专卖店为了促销自己的产品,决定发行内部购物券,但其他商场不能发行该购物券.编写一个 MobileShop 类(模拟手机专卖店),该类中有一 ...

  3. Java篇第七回——内部类与异常类

    一.内部类 我们在谈到某一个场所,比如说剧场时,我们更加关注这个剧场中有哪些角儿,我们在提到剧场时也经常会把角儿们顺带脚提出来.在Java中也有这种逻辑,我们希望在声明一个剧场类时,这个剧场就已经有了 ...

  4. 红牛农场JAVA_JAVA内部类与异常类

    内部类 定义 在类A中声明了类B,B称为内部类,A称为B的外嵌类 应用 需要建立一个类,不想它为外界所用 public class RedCowform{ static String formName ...

  5. Java实验6 接口、异常处理、注解与反射答案

    1.(基础题)分析.运行程序,并回答相关问题. (1)声明接口的关键字是什么? 关键字:Interface (2)接口中的方法有无方法体?如果省略不写,接口的方法.变量分别默认包含哪些关键字? 接口中 ...

  6. Educoder–Java抽象类和接口 第1关:Fruit类

    任务描述本关任务: 通过编程实例,掌握抽象类.接口的定义和使用. 抽象类的理解 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就 是抽象类. 说明:在Java语言中使用abstract ...

  7. java语言sql接口_java.sql包中的类和接口及其使用

    java.sql包提供使用Java编程语言访问并处理存储在数据源中数据的API,可以动态地安装不同驱动程序来访问不同数据源. 下面,详解java.sql包中包含的常用的接口和类 1.DriverMan ...

  8. java泛型与接口_Java泛型用于方法,类和接口

    什么是泛型? 型就是数据类型参数化.就是说原本定死的数据类型像方法中的形参一样,数据是不确定的,使用的时候由人传进去,泛型就是这样,数据类型不确定了.使用的时候再确定就可以了. 泛型的特点 是JDK1 ...

  9. Java实现Runnable接口创建多线程

    Java实现Runnable接口创建多线程 通过继承Thread类,实现多线程,但是,这种方式有一定的局限性,因为,Java中只支持单继承,一个类一旦继承了某个父类,就无法再继承Thread类 比如, ...

最新文章

  1. svn 提交信息模板
  2. 2020-11-22(操作系统——页面置换算法)
  3. 搭建认证服务器 - Spring Security Oauth2.0 集成 Jwt 之 【密码认证流程】 总结
  4. 简单的通讯录程序系统python
  5. 【IT资讯】编程语言面临重新洗牌,这六种要凉凉
  6. HTML常用标签及属性
  7. 人工智能︱腾讯如何利用英特尔至强处理器在游戏内创建购买推荐系统?
  8. 企业数字化转型之道(值得收藏)
  9. nginx 部署前端项目
  10. Linux出现“E45: ‘readonly‘ option is set (add ! to override)”的解决方法。
  11. 关于特修斯之船(转自知乎)
  12. Excel计算工作日的公式
  13. 海外云服务器备份和恢复的6种最佳做法
  14. Redis 中的 集合(Set) SCARD:获取集合包含的元素数量
  15. Mesh减面算法详解
  16. 关于ImportError: No module named ‘tensorflow‘报错的解决
  17. Android开发学习之WindowManager实现弹窗
  18. 连接无线上网服务器能查到吗,网络管理历史-怎样才能不让服务器查到自己上网记录我们单位 – 手机爱问...
  19. 虚函数,虚函数表,虚函数实现原理,虚函数实现机制,虚函数解决的问题
  20. 智能停车场ARM工控主板应用

热门文章

  1. Linux查看端口占用情况的命令
  2. 点击文本框弹出热门标签
  3. 云原生时代,我们为何离不开混沌工程?
  4. Unable to simultaneously satisfy constraints
  5. html+css实现了简单的注册页面
  6. AD9361、AD9613高速AD采集处理开发案例,基于C6678+Kintex-7
  7. webApp——媒体查询
  8. 将表格导出为excel
  9. 用户流失200万、资金池疑似见了底,摩拜靠什么拿到下一轮融资?
  10. 前瞻:数据科学中的探索性数据分析(DEA)