实验六 内部类与异常类
更新时间:2023-11-04 06:08:01 阅读量: 综合文库 文档下载
- 实验六步推荐度:
- 相关推荐
实验六 内部类和异常类
1. 实验目的
1、掌握内部类的常用方法 2、掌握匿名类的常用方法 3、掌握接异常类的常用方法
2. 实验内容
1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。
1)实验1 红牛农场 2)实验2 检查危险品
3)实验3 内部类的使用方法 4)实验4 匿名类的使用方法 5)实验5 异常类使用方法 2、完成习题:
1)编写一个异常类MyException,在编写一个类Student,该类有一个产生异常的方法public void speak(int m)throws MyException,要求参数m的值大于1000时,方法抛出一个MyException对象。最后编写一个主类,在主类的main方法中用Student创建一个对象,让该对象调用speak方法。
3. 实验步骤
1、完成实验内容1中的程序填空、编译通过,并运行得到正确结果。 2、设计完成实验内容2中要求的程序,并通过编译、运行,最后得到正确结果。
4. 评分标准
1. 2. 3. 4. 5.
A——内容功能完善,编程风格好,人机接口界面好; B——内容功能完善,编程风格良好,人机接口界面良好; C——完成必做内容; D——能完成必做内容;
E——未按时完成必做内容,或者抄袭(雷同者全部为E).
参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。(压缩包的文件名为:学号后三位和名字开头字母,如109zhh.RAR|ZIP)
实验1 红牛农场
模板代码
RedCowForm.java
public class RedCowForm { String formName;
//【代码1】//用内部类RedCow声明对象cow RedCowForm(){ }
RedCowForm(String s){ }
public void showCowMess(){ }
class RedCow{ } }
String cowName=\红牛\int height,weight,price; RedCow(int h,int w,int p){ }
void speak(){ }
System.out.println(cowName+\,身高:\,体重:\System.out.println(\生活在\height=h; weight=w; price=p; cow.speak();
//【代码2】//创建cow formName=s;
MainClass.java
public class MainClass {
public static void main(String[] args) { } }
RedCowForm form=new RedCowForm(\红牛农场\form.showCowMess();
实验2 检查危险品
模板代码
Goods.java
public class Goods { boolean isDanger; String name;
public boolean isDanger() { }
public void setDanger(boolean boo) { }
public String getName() { }
public void setName(String s) { } }
name = s; return name; isDanger = boo; return isDanger;
DangerException.java
public class DangerException extends Exception{ String message;
public DangerException(){ }
public void toShow(){ } }
System.out.print(message+\message=\危险品!\
Machine.java
public class Machine { Goods[] goods;
public void checkBag(Goods goods) throws DangerException{ } }
if(goods.isDanger){ }
//【代码1】//用throw抛出一个DangerException的匿名类
Check.java
public class Check {
public static void main(String[] args) { } }
Machine machine=new Machine();
String name[]={\苹果\炸药\西服\硫酸\手表\硫磺\Goods [] goods= new Goods[name.length];//检查6件物品 for(int i=0;i for(int i=0;i try{ } catch(DangerException e){ } //【代码2】//e调用toShow()方法 System.out.println(goods[i].getName()+\被禁止!\machine.checkBag(goods[i]); System.out.println(goods[i].getName()+\检查通过\goods[i]=new Goods(); if(i%2==0){ } else{ } goods[i].setIsDanger(true); goods[i].setName(name[i]); goods[i].setIsDanger(false); goods[i].setName(name[i]); 实验3 内部类的使用 模板代码 Outer.java public class Outer { private static int size; /** 内部类Inner的声明 */ public class Inner { private int size; /** 方法doStuff() */ public void doStuff(int size) { } 【代码1】 //存取局部变量size加3 【代码2】 //存取其内部类的成员变量size加2 【代码3】 //存取其外部类的成员变量size加1 System.out.println(size+\ }//内部类Inner结束 /** 类Outer中定义的实例方法testInner()方法 */ public void testInner() { } /** main()方法 */ public static void main(String args[]) { } }//类Outer结束 Outer o=new Outer(); 【代码5】//调用Outer类中的testInner方法 Inner i=new Inner(); 【代码4】//调用Inner类中的doStuff方法 实验4 匿名类的使用方法 模板代码 Anonymity.java interface Square { double getSquare(int n); } interface Sqrt { public double getSqrt(int x); } class A { void p(Square square) { System.out.println(【代码1】);//输出getSquare方法计算后的结果 } void k(Sqrt sqrt) { System.out.println(【代码2】);//输出getSqrt方法计算后的结果 } } public class Anonymity { public static void main(String args[]) { A a=new A(); a.p(【代码3】);//实现Square接口,重写getSquare方法,返回n的平方 Sqrt sqrt=new Sqrt() {【代码4】};//重写getSqrt方法,返回x的开平方根,用静态Math.sqrt方法来运算 System.out.println(\计算开平方:\ } } 实验5 异常类使用方法 模板代码 eClass.java class MyException extends Exception { } abstract class A { } class B extends A { } int f(int x,int y) throws MyException { } if(【代码3】)//判断x、y都不大于100 【代码4】//抛出一个新建的MyException对象,MyException对象中构造方法传入的参数 abstract int f(int x,int y) throws MyException; String message; MyException(String str) { } public String getMessage() { } 【代码2】//返回message成员变量 【代码1】//把参数的引用传给message成员变量 内容为:乘数超过100 return x*y; public class eClass { } public static void main (String args[]) { } A a; 【代码5】//设计a对象的B类上转型对象 try { } catch(MyException e) { } 【代码7】输出错误信息 System.out.println(a.f(12,10)); 【代码6】//使用f()方法时传入一个大于100的乘数
正在阅读:
实验六 内部类与异常类11-04
03 气动冲床操作规程12-03
涩宁兰复线黄河水平定向钻穿越施工技术06-07
结构优化设计大作业(北航)01-25
宝宝辅食添加的八个对与错08-19
人际沟通障碍克服12308-30
基于GSM短信模块的家庭安全报警系统12-06
《对联赏析》教学设计06-02
初中物理学习资料:中考物理必须知道的150句话!易错点整理,解读03-08
基因扩增检验实验室工作导则12-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 部类
- 异常
- 实验
- 千方百剂培训手册
- 母系氏族社会和父系氏族社会的异同点
- Ebay 卖家买家常用语翻译
- 皇母训子十诫
- 201X大学开学典礼宣誓词-推荐word版(3页)
- 通榆支行领导班子建设及职工队伍建设情况汇报(生行长来行调研)
- 中学化学实验室管理
- 82分徐州常州素质教育概论考试试卷(含答案)
- 2.3 5-6岁儿童心理发展的年龄特征教程
- 世界海洋技术发展对国际政治的影响(80分试题)
- 司法局专题片解说词
- 纪检监察基础知识竞赛用题库
- 电力电子技术-模拟试题5-答案
- 2016年最新青岛版六年级数学上册第六单元分数四则混合运算教学设计 教案(含教学反思习题答案)
- R语言学习系列01-R语言的安装与使用
- 2010年临床执业医师基础综合笔试大纲
- 八字日干论命 - 壬
- 教师资格证试讲 旅游概述教案(中职)
- 校本研修教师手册
- DFMEA - PFMEA 探测度评价准则