


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 Java语言与面向对象作业习题与答案一、简答题1 什么是对象?什么是类?对象是一种抽象数据类型。它包含了事物的静态特征属性和动态特征行为两大 特征。类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。2 Java语言的单继承是指什么?一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。3 在一个共有类中的数据成员及方法成员的访问控制符为缺省,那么这个类可供什么样的包 引用?当一个类的访问控制符为public共有时,说明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类含当前类引用。4 抽象类的用途1设计
2、在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性;2设计出的类也具有更加良好的可扩展性。5 什么是非静态的成员变量?非静态成员即为实例成员变量没有加static修饰的变量。6.异常Exception和错误Error有什么不同? Java如何处理它们?答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成 系统崩溃、虚拟机粗错、动态链接失败等,这一类错误无法恢复或不可能捕获,并将导 致应用程序中断。异常表示另外一种“非同寻常的错误。这种错误通常是不可预测,但可以被捕获 且可以恢复。常见的异常情况包括内存缺乏、找不到所需文件等。对于错误,编程人员可以通过对程
3、序进行更仔细的检查,以防止这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。7简单陈述Java的异常处理机制。答:Java采取“抛出一捕获的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的 机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个 程序运行的平安性。&简单陈述throw语句和throws关键字之间的差异。答:throw语句是在一个方法中用来直接抛出异常对象,其格式是:throw异常对象;throws关键字是用一个方法声明首部,用来指出这个方法中可能产生假
4、设干种异常,其格式:方法修饰符返回类型 方法名参数表throws异常类型表/*方法体*/二、填空题1 .所有Java应用程序都必须包含的一个类方法是main()。2 面向对象程序设计语言的三种重要特性是封装性、继承性和多态性 。3 方法重载与方法覆盖的不同有:方法重载是指允许在同一个类中定义多个同名方法,它们通过形参的个数或形参参数的类型来区别;方法覆盖是指在子类中重新定义了与父类中的方法同名的方法。4 .面向对象程序设计语言的多态的事项方法主要有三种:方法重载、方法覆盖和接口。5 对象之间的信息通过 消息传递机制 来完成。6 .成员变量的修饰符有写出6 种public, frie ndly,
5、 protected, private, fin al, static 。7 整个类共同拥有的方法是用static修饰的方法或叫类成员方法;它具有统计一个类的实例个数等用途。&弓I用父类中的成员用super ;引用当前的类或对象用this。9 在面向对象中,继承有两种含义,分别指在类的层次结构中,子类自动继承父类的特性和同一类的所有实例对象都具有所属类的特征。10. 在Java语言中,所有类都是Object类的子类。11. 多继承问题指的是一个类有多个父类 问题;在Java语言中通过 接口方法解决多继承问题。12 接口是一种特殊的类,它只能定义一些抽象方法和常量。13. 在Java语言中,一组
6、类和接口的集合通常被称为类库或API包或应用程序接口 。14. 给出引用包的两种方法是:使用包名、类名做前缀;使用 import语句。15. Java语言异常处理三种方式是:捕获异常、声明异常和自定义异常16. 程序设计过程中可能会出现的两种错误是编译错误和运行错误。17. 程序设计过程后的运行错误大致有三类。它们是逻辑错误、用户输入不合法和硬件设备 出错。18. 在Java语言中,用try-catch-final结构来捕获并处理异常。19. 用户程序使用throw new异常类名;抛出自己的异常。20. 自定义异常类必须继承Exception类。三、选择题1. 下述声明中哪一种可以防止该类产
7、生子类?A . static class DEFB. private calss DEFC. abstract class DEFD. final public class DEFE. final abstract class DEF答案:D。Final防止有子类继承,因此可选择D、E。但final不可以和abstract连用,因此E也错。2. 如果要求子类可以在任何包中访问父类的成员,下面哪一个修饰符可以到达这个目标的最 为严格的修饰符?A . publicB. privateC. protectedD .无修饰符答案:CoA和C都可以做到这点,但 A更为宽松,不仅仅是任何包中的子类,而且任
8、何包中和包外的类都可以访问它。D只能被同一个包内的类访问,所以D不符合要求。而 B比D更为严格。3. 程序的封装性是如何实现的?A 由应用程序的设计者实现B 由应用程序的使用者实现C.由应用程序的设计和使用者实现D 由操作系统实现答案: A。4以下哪个选项是错误的?A 子类对象可以转化成父类对象B 父类对象一般不转化成子类对象C.子类对象与父类对象之间不能转化D 子类对象转化为父类对象后,对于子类与父类共有的方法,仍然调用子类的方法。答案: C。5 以下哪个选项能表达Java语言的多态性?A .匿名类B .内布类C.方法重载D .方法覆盖答案: C。6以下哪个选项正确?A Error 类是一个
9、 RuntimeException 异常B 任何抛出一个 RuntimeException 异常的语句必须包含在 try 块内。C.任何抛出一个 Error对象的语句必须包含在try块内。D .任何抛出一个 Exception异常的语句必须包含在try块内。答案: DError 代表程序中不可捕获的问题,与 Exception 类同在一个层次,而 RuntimeException 是 Exception 的子类,所以 Error 类不可能是一个 RuntimeException 类型的异常;抛出一个 RuntimeException 异常不一定要在 try 块内,它是由 JVM 正常抛出,不需
10、要 throw 和 throws 语句,因而也不一定要有catch语句去捕获,所以可以不出现在try块中;Error类型的问题是不可恢复的,多以没有规定要去捕获Error,因而也可以不出现在try块中;对于抛出一个Exception 对象的语句,如果没有包含在 try 块之内,有可能编译不能通过,因此选项 D 是必 须的。7 有如下程序,给出程序运行结果? import java.io.*;public class ExceptionTest public static void main(String args) try methodA(); catch(IOException e) Sys
11、tem.out.println( “Caught Exception );public void methcdA() throw new IOException(); A .代码不能编译B 输出: Caught ExceptionC.输出:CaughtIO ExceptionD 程序正常运行后无任何信息输出答案: A首先, methcdA 是非静态方法,不能出现在 main 中;其次,就算 methcdA 是静态方法, IOException 是可检测异常,必须被 catch 捕获或是被 throws 声明,但程序中没有声明 throws, 所以 try 语句块不可能抛出 IOExceptio
12、n 这个异常, 而 catch 也就谈不到捕获它了, 所以两个条 件都没有满足,编译同样错误。在 methcdA 方法定义语句的前面加 static ,后面加上 throws IOException ,程序就可以调试 通过了。8有如下程序,在程序的 point x 处增加如下哪个选项程序才能通过编译?public class ExceptionTest calss TestException extends Exception public void runTest() throws TestException/point xB catch(Exception)D catch(TestExce
13、ption)C 里边的 RuntimeException 是 Exception,所以错误;由于runTest() 抛出的是public void test() runTest(); A throws ExceptionC throws RuntimeException 答案: A没有try就不能有catch,所以B, D错;而 的子类,不能用捕“小鱼的工具去捕“大鱼TestExcption ,而 TestExcption 又是 Excption 的子类,因此用到 runTest 方法就必须抛出 Excption 异常。9有如下程序,该程序的运行结果是?public class Exc_4 p
14、ublic static void main(String args) try return; finallySystem.out.println( “Finally );A .程序无输出B .程序输出“ Finally C.代码可以通过编译但执行时产生异常D .因为缺少catch块所以编译出错答案: B程序中有catch那么必须有try,但反之不成立,所以 D不对;关于try-catch-finally的 问题,程序中如果遇到 return,那么fin ally块先被执行,然后再执行 return,而fin ally块后 面的语句将不被执行。 如果遇到System.exit(l),那么退出J
15、VM ,整个程序退出,当然fin ally 块其后的语句都不执行。10.有如下程序,如果methodA() 抛出 IOException 异常,该程序的运行结果是?class Exc_5 public static void main(String args) try methodA(); catch(IOException e) System.out.println( “caught IOException ); catch(Exception e) System.out.println( “caught Exception ); 答案: caught IOException如果 metho
16、dA() 抛出 IOException 异常,被语句 5 捕获,输出“ caught IOException四、编程题1试编写出要创立一个职工类Employee 。这个类中的一个成员变量应该包括职工号getempNum、Name;其操作方法一个是用来设置set职工的工号,另一个操作方法是用来取得职工工号。建议按两步完成设计:一步是写出类的头结构;另外一步是完成成员声明。class Employee public empNum;public Name;public int setNum(int _empNum)int empNum=_empNum;return empNum;int void g
17、etNum()Employee A;int empNum=A.setNum(2001);System.out.println( 职工工号为: + empNum);2创立一个名为 List 的显示类,它可以存储任何类型的对象,并可以在任何时候增加或删 除对象。class List private int maxItems=100;private int numItems=0;private Object list=null ;public List() list=new ObjectmaxItems; public List( int _maxItems)maxItems=_maxItems;l
18、ist=new ObjectmaxItems; public void add(Object obj)list numItems =obj; numItems +; public void delete(int pos)for (int i=pos+1; i= maxItems ); public String toString() String s=new String();for (int i=0; i numItems; i+) s+=n +listi.toString(); return s+n ;public class ListTest public static void mai
19、n(String args)List list= new List(); list.add( new Double(10.0); list.add( new String( Java by Definition ); list.add( new Integer(-10);System.out .println(list);System.out .println( Position 0: +list.get(1); list.delete(2);list.delete(0);System.out .println( List Size: +list.getSize(); 程序运行结果:Java
20、by Definition -10Position 0:Java by DefinitionList Size:13创立帐号 SavingsAccount 类。用静态变量存储年利率。该类的每个对象都有一个私有实例 变量 savingBalance 用来显示帐号里的钱数。 提供方法 calculateMonthlyInterest 计算月利息 按 照年利率乘以帐号里的钱数再除以12;该利息必须加到实例变量中。提供一个静态方法modifyInterestRate 设置年利率。写一个测试程序 CalculatorInterest 来测试该类。建立两个该类 对象,saverl和saver2,分别有人民
21、币2000元和3000元。设年利率为 4%。计算每个帐号的月利息及新的钱数。设年利率为 5%。计算每个帐号下月的利息及新钱数。import java.io.*;public class CalculatorInterest/ 测试程序 public static void main(String args) SavingsAccount saver1=new SavingsAccount(2000);/声明两个对象SavingsAccount saver2=new SavingsAccount(3000);SavingsAccount. modifyInterestRate(0.04);Sys
22、tem.out.print(InterestRate);saver1.printR();System.out.print(saver1 s balance)i;s:saver1.printB();System.out.print(saver2 s balance)i;s:saver2.printB();SavingsAccount. modifyInterestRate(0.05);/设置利率为 4%/输出利率/输出用户 1的总额/输出用户 2的总额/设置利率为 5%System.out.print(InterestRate);/输出利率saver1.printR();System.out.p
23、rint(saver1 s balance)i;s: saver1.printB();/输出用户 1的总额System.out.print(saver2 s balance)is: saver2.pri ntB();class Savin gsAcco unt private double savingsBalanee;static double annuallnterestRate;输出用户2的总额声明实例变量声明静态变量public SavingsAccount( double x) savingsBalance=x; 构造函数public void add(double x) sav i
24、n gsBala nce= savi ngsBala nce+x; / 计算总存款public static void modify In terestRate( double x) annu all nterestRate =x; II年利率public void printB() System. out.println( savingsBalance*(1+ annuallnterestRate); II输出总额public void printR() System. out.println( annuallnterestRate); II输出年利息程序运行结果:saverlsaver2s
25、averlsaver24.设计一个交通工具类 vehicle ,其中的属性包括速度 speed种类kind ;方法包括:设置 颜色setColor,取得颜色getColor。再设计一个子类 Car,增加属性passenger表示可容纳旅客 人数,添加方法取得最大速度 getMaxSpeed()。import java.awt.*;public class vehicle private int speed;privateprivateString kind;public vehicle。speec=2000;kind = TO; color =Color. red;public vehicle( int s, String k, Color c) speed=s;ki nd = k;color =c;public void setColor(Color cl) color=cl; public void getColor(String)if (equals(ki nd, k) return color; class Car exte nds vehicl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业培训教学课件分享
- 企业培训师课件
- 时尚服装试用及评价合同
- 餐饮连锁企业服务员派遣与绩效评估协议
- 场地运营与区域健康发展管理合同
- 餐饮业跨界合作合同范本
- 旅游业市场调研与旅游产品开发合同
- 宿舍合作方案模板
- 车辆融资租赁保险代理服务合同
- 绿地卫生清扫保洁方案
- GB/T 18380.13-2022电缆和光缆在火焰条件下的燃烧试验第13部分:单根绝缘电线电缆火焰垂直蔓延试验测定燃烧的滴落(物)/微粒的试验方法
- 中国铂族金属供需发展趋势
- 国外发票模板invoice
- 计量分中心在供电公司工作会议上的表态发言(4篇)
- GB 19304-2018食品安全国家标准包装饮用水生产卫生规范
- 风电施工合同模板
- 小学英语素材-1-5年级英语牛津词汇表(带音标) 牛津上海版
- 2022年重庆出版集团有限公司招聘笔试试题及答案解析
- DB11-T1836-2021 城市桥梁工程施工技术规程高清最新版
- 大猪料配方设计思路课件
- 川崎病课件讲稿
评论
0/150
提交评论