Java应用程序-题库测试题练习题带答案测试题模拟题自测题_第1页
Java应用程序-题库测试题练习题带答案测试题模拟题自测题_第2页
Java应用程序-题库测试题练习题带答案测试题模拟题自测题_第3页
Java应用程序-题库测试题练习题带答案测试题模拟题自测题_第4页
Java应用程序-题库测试题练习题带答案测试题模拟题自测题_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题一、选择题(答案可能不止一个)1.()是以对象为特征的可视化程序组件?A.过程化语言 B.面向对象的语言 C.机器语言 D.以上都不是2.Java语言在体系结构上是()。A.过程化语言 B.抽象的 C.与平台无关的D.特定的3.所有Java应用程序必须包含下面哪个方法才能运行?()A.start() B.begin() C.main() D.main(Stringargs[])4.执行编译好的Java程序的命令是()。A.javac B.java C.run D.execute5.在Java中,类可以具有任何数目的超类?()A.正确 B.错误 6.以下哪种Java程序可访问JVM之外的资源?()A.Java应用程序 B.JavaApplet C.JavaServlet D.以上都不是7.Java源代码文件可使用下列哪个扩展名存储?()A..java B..javac C..javax D..src8.子类也称为( )。A.内联类 B.嵌套类 C.派生类 D.隐藏类9.以下哪个选项使Java得以在因特网上流行?A.JavaApplet B.Java应用程序 C.Java字节码 D.以上都不是10.以下哪个是关于Java的正确说法?( )A.仅具有编译器 B.仅具有翻译器 C.具有编译器和翻译器 D.具有字节码阅读器二、填空题1.Java程序有_______________________和______________________两种类型;2.现有一个Java类MyJava,其权限为public,则包含该类的Java程序文件名为________________;用javac命令编译后,得到类文件是______________________;要运行该程序,在命令行环境下应输入_________________________命令;3.在Eclipse集成开发环境中开发Java程序,先要点击________________菜单创建Java项目,然后点出__________________菜单在Java项目中新建Java类,接着编写程序代码,之后点出______________菜单或______________按钮运行程序;4.通常,主类程序都有一个__________方法,它是Java应用程序的入口点。三、思考题1.与其它高级语言比较,Java语言有什么特点?2.环境变量classpath与path包含的内容、实现的功能有什么不同?3.什么是JVM?简述ava程序的执行过程。四、编程题1.编写一个主类名为MyJava1的Java程序,输出一行“这是我编写的第一个Java程序”文字;2.参考例题,编程实现如图1、图2所示功能:输入圆的半径,输出其周长与面积: 图1输入圆的半径 图2输出圆的周长与面积3.参考例题,编写一个小应用程序,输出类似于图3所示结果(图片可从互联网上下载):图3小应用程序运行结果习题一、选择题(答案可能不止一个)1.下列哪一个不是Java语言的关键字?()A.if B.sizeof C.private D.null2.下列关于基本数据类型取值范围的描述中,正确的是() A.byte类型的取值范围为-128~128 B.boolean类型的取值为ture和false C.char类型的取值范围为0~65536 D.short类型的取值范围为-32768~327673.下列赋值语句中,不正确的是()A.booleanb=(5>6); B.doubled=0.0f;C.floatf=1.23; D.charc=’NBA’;4.表达式true||false&&true||false&&!true的值是()A.0 B.1 C.true D.false5.已知:intx=3;inty=6;z=x|y;则z的值为()A.6 B.7 C.8 D.96.在一个应用程序中定义了数组a:int[]a={1,2,3,4,5,6};能够打印输出数组最后一个元素的语句是() A.System.out.println(a[6]); B.System.out.println(a[5]); C.System.out.println(a[4]); D.System.out.println(a[a.length]);7.观察下列代码段,其运行结果中包括( )选项 for(inti=0;i<2;i++){ for(intj=0;j<3;j++){ if(i==j) continue; System.out.println("i="+i+",j="+j); } }A.i=0,j=0 B.i=0,j=1 C.i=0,j=2 D.i=1,j=0 E.i=1,j=1 F.i=1,j=28.执行如下代码段后,程序的输出结果是( ) intx=1;switch(x){ case1: ++x; System.out.print(x); case5: x++; System.out.print(x); break; default: System.out.print(x); }A.1 B.12 C.23 D.123 E.234 F.3二、填空题1.请将程序所缺代码补充完整: public__________App1{ public_________void____________(________arg[]){ __________.out.println("你好!"); } }2.设i、d、c的数据类型分别为int、double和char型,它们的值为:i=10,d=23.4,c=’a’。请将表达式的值填入表格中(假定各表达式互不影响):表1表达式对应的运行结果表达式运算结果表达式运算结果r1=i++r2=++ii%3d/2d>123.45i==0i+20<=d(i<20)&&(c!=’A’)c>=’a’&&c<=’z’(int)(c+3)3.请把下列数学式或描述写成Java对应的表达式:ax2+bx+c对应的Java表达式________________对应的Java表达式________________对应的Java表达式________________4x-7y+2=ab对应的Java表达式________________place="广东"同时sex='男'对应的Java表达式________________ch是0—9的数字字符对应的Java表达式________________4.某学校评选奖学金的条件是主要课程的平均成绩为95分及95分以上,或是主要课程每科成绩为90分及90分以上。设某学期某年级开设了x1、x2、…、x5门主要课程,则将评选奖学金的条件用Java表达式表示出来应该是____________________________。三、思考题Java中的数据类型可分哪两大类?基本类型包括哪8种?Java中的包名、类名、接口类、方法名的命名有什么约定俗成的规则?Java中的注释有哪些种类?为什么编写程序代码时要加入注释?为什么使用&&、||运算符进行逻辑运算时容易出现“短路”现象?如何加以改进?本章中介绍了哪几种输入、输出方法?请注意它们的区别。比较Java中的数组与C++中的数组的异同点。四、编程题1.要求:以图形界面方式输入任意三个实数,输出其中的最大值。2.现有一函数:请编写一个程序,输入x值,输出y值。3.我国公民个人收入所得税采用分级累进方法计算,实际操作时:先计算超出个税起征点的金额=月收入-个税起征点(现阶段为2000元),再根据超出部分数量多少来确定纳税等级(月收入不到个税起征点的不用纳税),最后计算纳税金额=超出部分金额*相应税率-速算扣除数。具体见表2:表2我国个人所得税各等级的税率及速算扣除数级数月收入超出个税起征点的金额税率速算扣除数(元)1级不超过500元的5%02级超过500至2000元的部分10%253级超过2000元至5000元的部分15%1254级超过5000元至20000元的部分20%3755级超过20000元至40000元的部分25%13756级超过40000元至60000元的部分30%33757级超过60000元至80000元的部分35%63758级超过80000元至100000元的部分40%103759级超过100000元以上45%15375例如:某人某月收入为5000元,则他应交纳的个人所得税可以这样计算:超出个税起征点金额:5000-2000=3000元,属于第3级别,故:应缴个人所得税:3000*15%-125=450-125=325(元)请编写一个程序,输入任何一个公民的月收入,能够计算其应交纳的个人所得税。4.利用公式:求π的近似值,直到最后一项的绝对值小于10-4为止。(用while语句实现)5.36块砖,36人搬,男搬4、女搬3、两个小儿抬1砖,要求一次全搬完,问:男、女、小儿各几人?6.使用Math.random()方法产生50个0—100的随机整数,并将它们存放到一维数组score中,然后统计各分数段上的次数(即分别在0~9,10~19,20~29,…,80~89,90~100上的次数),并将分类统计结果存入到数组result中,最后输出数组result各元素的值。习题一、选择题(答案可能不止一个)1.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()2.对于构造方法,下列叙述正确的是()A.构造方法是类的一种特殊方法,它的方法名必须与类名相同B.构造方法的返回类型只能是void型C.构造方法的主要作用是完成对类的对象的初始化工作D.一般在创建新对象时,系统会自动调用构造方法3.若需要定义一个类变量或类方法,应使用哪种修饰符?()A.staticB.packageC.privateD.public4.若在某一个类定义中定义有如下的方法:abstractvoidperformDial();该方法属于()A.本地方法B.最终方法C.静态方法D.抽象方法5.不使用static修饰符限定的方法称为实例方法。下列关于实例方法的说法中,正确的是()A.实例方法可以直接调用父类的实例方法B.实例方法可以直接调用父类的类方法C.实例方法可以直接调用其他类的实例方法D.实例方法不可以直接调用本类的类方法6.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为()A、隐藏B、覆盖C、重载D、Java不支持此特性7.设有下面的一个类定义:classAA{staticvoidShow(){ System.out.println(“我喜欢Java!”);}}classBB{voidShow(){System.out.println(“我喜欢C++!”);}}若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的?()A.a.Show()B.AA.Show()C.AA.Show()D.a.Show()b.Show()BB.Show()b.Show()BB.Show()8.关于下列代码,哪那个语句的描述是正确的?()publicclassPerson{ staticintarr[]=newint[10]; publicstaticvoidmain(Stringa[]){ System.out.println(arr[1]); }}A.编译时将产生错误B.编译时正确,运行时将产生错误C.输出零D.输出空9.

下列方法定义中,正确的是()

A.intx(){charch='a';return(int)ch;}B.voidx(){...returntrue;}

C.intx(){...returntrue;}D.intx(inta,b){returna+b;}10.在某个类A中存在一个方法:voidgetSort(intx),以下能作为这个方法的重载的声明的是()A.voidgetSort(floatx)B.intgetSort(inty)C.doublegetSort(intx,inty)D.voidget(intx,inty)11.有一个类A,以下为其构造方法的声明,正确的是()A.voidA(intx){...}B.A(intx){...}C.a(intx){...}D.voida(intx){...}12.符合对象和类关系的是()A.人和老虎B.书和汽车C.楼和建筑物D.汽车和交通工具二、填空题1.定义一个类包括类的声明和_______两个部分。2.Java中类成员的访问修饰符有以下几种:private,public,_______,________;类的访问修饰符只能使用缺省和________。3.类的类型修饰符包含了缺省、及三种,分别对应具体类、抽象类和最终类三种类型。4.this除了可以用作对当前对象的引用外,还可以使用this调用构造方法以及访问___________的成员变量。5.如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法__________了父类的同名方法。6.创建一个名为MyPackage的包的语句是,该语句应该放在程序的位置为。三、思考题1.面向对象编程语言的基本特征是什么?2.什么是对象?什么是类?对象与类的关系是什么?3.类变量与实例变量的区别?4.类方法与实例方法的区别?5.什么是方法的重载?6.构造方法有什么作用?7.Java中引入包的优点是什么?8.如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包?四、编程题1.根据下面的要求实现圆类Circle:Circle类的成员变量:radius半径Circle类的成员方法:(1)Circle()构造方法,将半径置为0(2)Circle(doubler)构造方法,创建Circle对象时将半径初始化为r(3)doublegetRadius()获得圆的半径值(4)voidsetRadius(doubler)设置圆的半径(5)doublegetPerimeter()获得圆的周长(6)doublegerArea()获得圆的面积接着再定义一个类CircleTest,用来调用Circle类,具体如下:在CircleTest类的main()方法中创建一个半径为0的对象c1,再调用它的setRadius()修改其半径值为50,然后输出c1的周长和面积。2.先定义一个教师类Teacher,它封装了:三个成员变量: strNo //表示工号 strName //表示姓名 intWorkAge //表示工龄四个成员方法: Teacher(Stringno,Stringname,intworkAge) //构造方法 getTeacherNo() //获取教师工号 getTeacherName() //获取教师姓名 getTeacherWorkAge() //获取教师工龄接着再定义一个类TeacherTest,用来调用Teacher类,具体如下: 在Teacher类的main()方法中创建一个工号为“0234”、姓名为“张三”、工龄为35年的对象t1,然后输出t1的工号、姓名和工龄。3.设计学生类student,属性包括:sno、sname、Chinese(语文成绩)、Math(数学成绩)和Phsic(物理成绩),,然后创建一个包含四个元素的对象数组stu,stu使用表1中的数据进行初始化,要求输出三门成绩总和为最高的学生学号和姓名。表1类属性及属性值4.请按要求设计一个课程类Course,它封装了:三个成员变量: courseID //课程代号 courseName //课程名称 credit //课程学分四个重载的构造器: Course() //默认的构造器 Course(StringcourseID) //单参数的构造器 Course(StringcourseID,StringcourseName) //两个参数的构造器 Course(StringcourseID,StringcourseName,intcredit) //三个参数的构造器要求:Course(StringcourseID,StringcourseName)构造器要调用Course(StringcourseID,StringcourseName,intcredit)构造器。习题一、选择题(答案可能不止一个)1.现有:Stringstr1="Java";Stringstr2=newString("Java");Stringstr3="Java";Stringstr4=newString("Java");在下列表达式中,结果为true的有()A.str1==str2; B.str1==str3; C.str2==str4; D.pareTo(str4);2.若有:Stringstr1="Java";Stringstr2=newString("Java");Stringstr3="Java";Stringstr4=newString("Java");在下列表达式中,结果为true的有()A.str1.equals(str2); B.str1.equals(str3); C.str2.equals(str4); D.pareTo(str3);3.现有:Stringstr="Tel:(020)87818998";若要得到第二个“8”的位置,可调用()方法A.str.indexOf('8'); B.str.lastIndexOf('8');C.str.indexOf('8',strr.indexOf('8')+1); D.str.charAt('8');4.若有:Stringstr=newString("广州亚运会")转换为字节数组,正确的语句()A.byteb[]=str.getBytes(); B.byteb[]=str.getchars(); C.byteb[]=str.getBytes("GBK"); D.byteb[]=newByte(str);5.以下表达式中,正确的有()A.Stringstr=""+6; B."test".trim(); C."nba".toUpperCase();D.Stringwords[]="Whatisyourname?".split();6.具有append()方法的是()类 A.String B.StringBuffer C.Math D.StringTokenizer7.要产生[1,100]的随机整数,可通过( )语来实现 A.(int)(1+Math.random()*100); B.(int)(1+Math.random()*99); C.(int)(1+Math.random()*101); D.(int)(Math.random()*101);8.要将字符串"678"转换成int类型数据,正确的语句是( ) A.Double.parseDouble("678"); B.Int.parseInt("678"); C.Integer.parseInt("678"); D.Integer.valueOf("678");9.要获得当前系统时间的毫秒数,正确的方法有( ) A.Datenow=newDate()

;longn=now.getTime(); B.System.currentTimeMillis(); C.Calendarcal=newGregorianCalendar();longn=cal.getTimeInMillis(); D.Calendarcal=newCalendar();longn=cal.getTime();10.假设系统时间为2010年10月1日0时0分0秒0毫秒,则执行如下语句:Calendarcal=newGregorianCalendar();System.out.println(cal.get(Calendar.MONTH));后将输出( ) A.1 B.4 C.5 D.6二、填空题1.调用____________表达式可得到圆周率的近似值;2.执行StringBufferbuffer=newStringBuffer();语句后,buffer的初始容量为____字节;3.若要创建一个指定时间:2008年8月8日20时0分0秒的对象,可用____________________语句来实现;4.SimpleDateFormat类的功能是____________________________。三、思考题1.字符串常量与使用newString("…")方法构造的字符串有什么不同?2.比较字符串时,使用“==”运算符与调用equals()方法有什么差异?3.StringBuffer与String相比,有什么优点?4.基本数据类型的包装类有什么用途?5.比较Date类与Calendar类的区别。四、编程题1.编写一个Java程序,实现下列功能:(1)声明一个名为str的String对象,并使它的内容初始化为“Howareyou?”;(2)打印整个字符串内容;(3)输出字符串的长度;(4)输出字符串的第一个字符;(5)输出字符串的最后一个字符;(6)输出字符串中的第一个单词(提示:先查找第一个空格位置,再获取该位置之前的子串);(7)以大写字母方式输出字符串内容。2.编写一个Java程序,实现如下功能:(1)声明一个名为bufferr的StringBuffer对象,并使它的内容初始化为“C++”;(2)输出buffer的内容;(3)使用append()方法在尾部追加“是一种编程语言”字符串;(4)使用insert()方法在“一种”和“编程”之间插入“面向对象”字符串;(5)使用replace()方法将字符串中的“C++”内容替换成“Java”;(6)使用delete()方法删除字符串中的“一种”两个汉字;(7)将buffer对象翻转(即从尾到头),再转换为String对象,并输出。3.使用Math.random()方法产生50个0—100的随机整数,并将它们存放到一维数组score中,然后统计各分数段上的次数(即分别在0—9,10—19,20—29,…,80—89,90—100上的次数),并将分类统计结果存入到数组result中,最后输出数组result各元素的值。4.编程实现:输入任意一个正整数,输出其对应的二进制、八进制、十六进制字符串。5.借助SimpleDateFormat类输出系统的当前时间,输出格式为: 北京时间:xxxx年xx月xx日xx时xx分xx秒。习题一、选择题(答案可能不止一个)1.设有下面两个类的定义:classPerson{}classStudentextendsPerson{longid; //身份证号intscore; //入学总分Stringname;//姓名intgetScore(){returnscore;}}问:类Person和类Student的关系是()。 A.包含关系B.继承关系C.关联关系D.无关系,上述类定义有语法错误2.设有下面的两个类定义: classAA{voidShow(){System.out.println(“我喜欢Java!”);}classBBextendsAA{voidShow(){System.out.println(“我喜欢C++!”);} }则顺序执行如下语句后输出结果为:()AAa;BBb;a.Show(); b.Show();A.我喜欢Java!B.我喜欢C++!我喜欢C++!我喜欢Java!C.我喜欢Java!D.我喜欢C++!我喜欢Java!我喜欢C++!3.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为()。A、隐藏B、覆盖C、重载D、Java不支持此特性4.对于子类的构造方法说明,下列叙述中不正确的是()。A.子类无条件地继承父类的无参构造方法。B.子类可以在自己的构造方法中使用super关键字来调用父类的含参数构造方法,但这个调用语句必须是子类构造方法的第一个可执行语句。C.在创建子类的对象时,将先执行继承自父类的无参构造方法,然后再执行自己的构造方法。D.子类不但可以继承父类的无参构造方法,也可以继承父类的有参构造方法。5.给出下面代码:1)classParent{2)privateStringname;3)publicParent(){}4)}5)publicclassChildextendsParent{6)privateStringdepartment;7)publicChild(){}8)publicStringgetValue(){returnname;}9)publicstaticvoidmain(Stringarg[]){10)Parentp=newParent();11)}12)}那些行将引起错误?() A.第3行B.第6行C.第7行D.第8行6.类Teacher和Student是类Person的子类;Personp;Teachert;Students;//p,tandsareallnon-null.if(tinstanceofPerson){s=(Student)t;}最后一句语句的结果是:() A.将构造一个Student对象B.表达式是合法的C.表达式是错误的D.编译时正确,但运行时错误7.对于下列代码:1)classPerson{2)publicvoidprintValue(inti,intj){//...}3)publicvoidprintValue(inti){//...}4)}5)publicclassTeacherextendsPerson{6)publicvoidprintValue(){//...}7)publicvoidprintValue(inti){//...}8)publicstaticvoidmain(Stringargs[]){9)Persont=newTeacher();10)t.printValue(10);11)}第10行语句将调用哪行语句?()A.line2B.line3C.line6D.line78.对于下列代码:()publicclassParent{ publicintaddValue(inta,intb){ ints; s=a+b; returns; } }classChildextendsParent{}下述哪些方法可以加入类Child?A.intaddValue(inta,intb){//dosomething...}B.publicvoidaddValue(inta,intb){//dosomething...}C.publicintaddValue(inta){//dosomething...}D.publicintaddValue(inta,intb)throwsMyException{//dosomething...}9.给出下面代码,那个选项是正确的?()publicclasstest{ staticinta[]=newa[10]; publicstaticvoidmain(Stringargs[]){ System.out.println(arr[10]); }} A.编译时将产生错误B.输出零C.编译时正确,运行时将产生错误D.输出空二、填空题1.是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。2.派生类构造方法可以通过关键字调用基类构造方法。2.多态是指,在Java中有两种多态,一种是使用方法的实现多态,另一种是使用方法的实现多态。3.Java中所有类都是类的子类。4.被关键字修饰的方法是不能被当前类的子类重新定义的方法。三、思考题1.比较Overload(方法重载)和Override(方法覆盖)的区别。2.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?3.比较this和super的区别4.什么是多态?面向对象程序设计为什么要引入多态的特性?使用多态有什么优点?四、编程题1.编写一个学生类Student,要求:(1)学生类Student属性有:id:long型,代表学号name:String类对象,代表姓名age:int型,代表年龄sex:boolen型,代表性别(其中:true表示男,false表示女)phone:String类对象,代表联系电话(2)学生类Student的方法有:Student(longi,Stringn,inta,booleans,longp):有参构造方法,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。intgetAge()():获取年龄作为方法的返回值。booleangetSex()():获取性别作为方法的返回值。longgetPhone():获取联系电话作为方法的返回值。publicStringtoString():以姓名:联系电话的形式作为方法的返回值2.编写一个圆类,要求: (1)Circle类的成员变量:radius半径(2)Circle类的成员方法:①Circle()构造方法,将半径置为0②Circle(doubler)构造方法,创建Circle对象时将半径初始化为r③doublegetRadius()获得圆的半径值④doublegetPerimeter()获得圆的周长⑤doublegerArea()获得圆的面积⑥voiddisp()将圆的半径、周长、面积输出到屏幕 (3)创建圆的派生类圆柱体类Cylinder,要求如下:Cylinder类的成员变量:height表示圆柱体的高Cylinder类的方法成员:①Cylinder(doubler,doubleh)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱高初始化为h②doublegetHeight()获得圆柱体的高③doublegetVol()获得圆柱体的体积④voiddispVol()将圆柱体的体积输出到屏幕3.按要求编写程序:(1)基类:Point(点)类,它封装了: 两个成员变量: x //点的横坐标,int型 y //点的纵坐标,int型 七个成员方法:: Point() //默认构造方法,x和y均取值为0; Point(intx,inty) //带参数的构造方法; setX(intx) //设置点的横坐标 getX() //获得点的横坐标 setY(inty) //设置点的纵坐标 getY() //获得点的纵坐标 toString() //返回形如:“点(10,25)”的信息(2)派生类:Circle(圆)类,它新增了: 一个成员变量: radius //圆的半径,float型 七个成员方法:: Circle() //默认构造方法,radius取值为0.0f,调用基类默认构造方法; Circle(intx,inty,floatr)//带参数的构造方法,调用基类带参数构造方法; setRadius(intr) //设置圆的半径 getRadius() //得到圆的半径 getArea() //获得圆的面积 getPerimeter() //获得圆的周长 toString() //重写基类的toString()方法,返回形如: //“圆点(10,25),半径:5.5,周长:xxx,面积:xxxx”的信息(3)主类:InheritTest,在它的main()方法中创建一个圆点位置为(10,25),半径为5.5的圆对象c,然后分别调用基类和派生类的toString()方法输出点和圆的相应信息。习题一、选择题(答案可能不止一个)1.下面的是关于类及其修饰符的一些描述,正确的是:()。A.abstract类只能用来派生子类,不能用来创建abstract类的对象。B.final类不但可以用来派生子类,也可以用来创建final类的对象。C.abstract不能与final同时修饰一个类。D.abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。2.在使用interface声明一个接口时,只可以使用(d)修饰符修饰该接口。A.privateB.protectedC.privateprotectedD.public3.给定下列程序,哪些是正确的?() publicabstractinterfaceFrobnicate{ publicvoidtwiddle(Strings); } A.publicabstractclassFrobimplementsFrobnicate{ publicabstractvoidtwiddle(Strings){}} B.publicclassFrobextendsFrobnicate{ publicvoidtwiddle(Strings){} publicvoidtwiddle(Integeri){}}C.publicabstractclassFrobimplementsFrobnicate{}D.publicclassFrobextendsFrobnicate{ publicvoidtwiddle(Integeri){}}二、填空题1.方法是一种仅有方法声明,没有方法体的方法,该方法必须在抽象类之中定义。2.如果某个子类没有覆盖抽象方法,则必须被声明为类。3.如果一个类没有覆盖接口定义中的全部方法,则必须被声明为类。三、判断题1.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。()2.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。()3.一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。()4.类在实现接口的方法时,必须显示地使用public修饰符。()5.实现一个接口,则在类中一定要实现接口中的所有方法。()6.抽象类不能实例化。()7.接口名可以作为方法返回值的类型。()四、思考题1.为什么要使用抽象类?如何定义抽象类和抽象方法?抽象类中是否可以不包含抽象方法?2.什么是接口?为什么要定义接口?接口与抽象类有何异同?3.如何定义接口?使用什么关键字?4.一个类如何实现接口?实现接口的类是否一定要重写该接口中的所有抽象方法?五、编程题:根据如图1所示的UML图设计各类和接口,然后再创建一个包含main()的类来测试这些类和接口,要求输出以下文本:鱼喜欢吃草,狗喜欢啃骨头鱼使用螵呼吸,狗使用肺呼吸狗正在和一只可怜的老鼠逗着玩呢 图1类和接口的层次图习题一、选择题1.以下哪个是所有异常和错误的基类()A.Exception B.Throwable C.Error D.RuntimeException2.以下哪个关键字用于抛出一个异常()A.throw B.thorwn C.throws D.cacth以下哪一个是用户定义的异常类的正确声明()A.ClassAextendsB{…}B.ClassAextendsException{…}C.ClassAextendsBimplementsException{…}D.ClassAextendsextendsExceptionimplementsException{…}下列说法中错误的是()A.子类可以与超类方法抛出相同类型的异常;B.子类可以抛出超类方法所抛出的异常的子类;C.子类中的方法抛出的异常数目可以少于超类中方法所抛出的异常数目,或者不需要抛出任何异常。D.自定义异常不一定要继承Exception及其子类;5.下列说法中错误的是()A.try、catch、finally这三个关键字都不能单独使用。B.try语句finally组成try...finally结构。C.catch语句可以有一个或多个。D.finally语句可以有一个或多个。二、填空题1.Throwable类有两个直接类:___________指JVM系统内部错误、资源耗尽等严重情况;_____指其它因编程错误或偶然的外在因素导致的一般性问题。在Exception类中,返回当前异常对象信息的描述的方法是_______________;返回当前异常对象信息的详细描述的方法是:_____________;用来跟踪异常事件发生时执行堆栈的内容的方法是______________.如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将________。在Java中用关键字_____________声明抛出的异常。无论是否抛出异常都要执行的语句应用放到_________语句中。三、思考题1.关键字throw的作用是什么?关键字throws的作用是什么?2.假设statement2引起以下try-catch代码块的异常。try{ statement1; statement2; statement3;}catch(Exception1e1){}catch(exception2e2){}statement4;回答以下问题:statement3将被执行吗?如果没有捕获异常,还执行statement4吗?如果在catch子句中捕获到异常,statement4将被执行吗?3.假设statement2引起以下try-catch代码块的异常。try{statement1;statement2;statement3;}catch(Exception1e1){}catch(exception2e2){}catch(exception3e3){throwe3;}finally{statement4;}Statement5;回答以下问题:如果没有捕获异常,还执行statement5吗?如果异常类型是statement3,statement4执行吗?statement5将被执行吗?4.下列代码的会出现什么问题?classtest{ publicstaticvoidmain(Stringargs[]){ try{inta=Integer.parseInt(args[0]);intb=0;intc=a/b;}catch(Exceptionex){.....}catch(RuntimeExceptionex){.....}}}习题判断题1.Java泛型的本质是参数化类型。( )2.Java数组的协变性(covariant)是指如果类Base是类Sub的基类,那么Base[]就是Sub[]的基类。Java泛型也是协变的,就是说如果类Base是类Sub的基类,那么List<Base>就是List<Sub>的基类。( )3.根据Java集合框架中的定义,JavaSet集合中的元素是可以重复的。( )4.JavaList集合与Java数组相似,JavaList集合的长度也是固定的。( )5.List主要特征是其元素以线型方式存储,集合中可以存放重复的对象。()6.泛型类的构造方法仍然和普通类的构造方法形式是一样的,不带参数。( )7.Java集合中Map是一种把键对象和值对象进行映射的集合,他的每一个元素都包含一个键对象,一个值对象,键对象相当于值对象的索引,而且值对象不可以是Map类型的。( )8.Java集合中ArrayList是长度可变的数组。可以对元素快速的随机访问。( )9,Java集合中Set最为主要的特征是集合中的对象不按照特定的方式排序,但是可以有重复的对象。( )10.Java语言在使用泛型类时必须指定泛型类型参数。( )二、填空题1.定义泛型时,泛型参数放到尖括号中,其功能类似于方法的形参。在实例该类时要为参数传入实际参数,泛型参数的的实际参数只能是类类型,包括自定义的类型,而不能是类型。2.Java泛型就是在定义、时指定类型形参类型形参将在声明该类型变量、创建该类对象时确定,即传入类型实参。Java的参数化类型称为泛型(GenericType或Generic)。3.JavaSE5.0改写了集合框架中的全部接口和类,提供泛型支持,在声明集合变量、创建集合对象时,传入。4.如果Foo是Bar的一个子类型,G是一个Java泛型,那么,G<Foo>G<Bar>的子类,Foo[]Bar[]的子类。5.泛型可以被继承或实现,但是泛型作为父类或父接口时,不能再包含有,而只能包含有泛型实参。6.Java编译器允许在使用泛型是不传入实际参数,在使用Java编译器javac编译时会产生警告。可以通过使用编译器的–Xlint:unchekched选项查看详细信息。7.泛型的类型参数的实参只能是类类型,不能是。8.Java集合类和数组不同,数组元素既可以是类型,也可以是对象类型;而集合中的元素只能是。9.Java集合类主要由2个接口派生,一个是,另一个是。10.Java集合可分成类,其中Set集合中的元素不能;List集合非常像;Mapj集合的元素由2个值组成,一个是,一个是。11.Iterator接口是Java集合框架中的成员,和Cllection、Map集合不一样,Iteratoer接口主要用于Cllection集合中的元素。Iterator又称。12.Java中除了可以使用Iterator接口的方式访问Cllection集合类中的元素,Java1.5还提供了循环来迭代访问Cllection集合中的元素。三、编程题1.在程序中声明一个HashSet集合类的对象hset,向hset中添加字符串元素“hello”,”world”,”你好”,“Java”,“Java泛型”和“Java集合”。用hset的iterator()方法生成迭代器it,使用it的hasNext()方法迭代输出集合中的元素。2.使用foreach循环语句遍历输出上体中集合的元素。3.定义一个具有一个参数的泛型类,在其中定义2个泛型方法,分别返回2个泛型形参的和与差,在main()函数中分别传入Double、Float、Integer类型实参,验证方法的执行。4.在main()方法中分别声明HashSet、ArrayList和HashMap()集合,向集合中添加若干元素,然后输出各集合中所有元素。查看JavaAPI文档,找到各种集合添加元素的方法,注意Map集合的元素为一个“键-值对”。Map集合输出元素的方法也不同Cllection集合类型。习题一、选择题(答案可能不止一个)1.下列选项中,哪些属于File类的功能?()A.查看文件大小 B.创建目录 C.删除文件 D.读取文件中的数据2.File类可以表示() A.文件 B.目录 C.输入流 D.输出流3.要在磁盘上创建一个文件,可以使用()类的实例。A.File B.FileOutputStream C.RandomAccessFile D.以上全对4.下列选项中,哪些类使用了缓冲区技术?()A.FileInputStream B.FileReader C.BufferedOutputStream D.PrintWriter5.InputStreamReader的直接父类是()A.Object B.Reader C.InputStream D.Writer6.DataOutputStream实现了()接口 A.DataInput B.DataOutput C.Serializable D.RandomAccessFile7.下列选项中,哪些不是BufferedReader的方法?( )A.read() B.readLine() C.newLine() D.close()8.要向myfile.txt文件写入内容,可选用的类有哪些?()A.FilterOutStream B.FileOutputStream C.FileWriter D.PrintWriter二、填空题1.在文本编辑器中,通常包含“文件”菜单,请指出下列菜单项中,使用的流是属于输入流还是输出流?应如何操作?(1)“新建”:_____________________________________;(2)“打开”:_____________________________________;(3)“保存”:_____________________________________;(4)“另存为”:___________________________________。2.要创建RandomAccessFile类对象,以只读方式打开c:\mymobile\blacknames.txt,正确的语句是______________________________。3.标准输入流对象System.in、标准输出流对象System.out是______________类的实例。4.readObject()和writeObject()分别是____________________类和____________________类的方法。5.InputStreamReader、OutputStreamWriter类分别实现______________________________________和___________________________________功能。6.FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与_____________类和_______________类一起使用。三、思考题1.用File表示的文件或目录是否一定要存在?若不存在,应如何创建?2.比较下列三组概念的差异:(1)输入流与输出流;(2)字节流与字符流;(3)文件字节流与文件字符流。如何理解I/O流操作中的“逐层包装”思想?FilterInputStream/FilterOutputStream有哪些典型子类?请各举出2个例子,并说明它们的功能。当创建FileInputStream对象时,如果对应的文件不存在,会抛出何种异常?6.有人说“RandomAccessFile类既是输入流,又是输出流”,你是否同意这种说法?请说明原因。四、编程题1.利用File类和递归方法,列出指定目录下的文件及各级子目录包含的内容。2.使用字节流实现文件的拷贝,要求一次能够读写多个字节(如:512字节等)。3.编程实现:从键盘输入若干名学生的信息资料(学号、姓名、年龄,按Ctrl+z结束),然后将输入的所有信息保存到文件students.dat中。4.创建一个名为DisplayFile.java的应用,它能够打开、读取并显示任何文本文件的内容。5.请创建一个类Book,它的属性有:bookName(书名)、authors(作者)、ISBN(ISBN号)、price(价格)、pressHouse(出版社),并让它具备对象序列化功能。然后用2个对象来演示序列化、反序列化的实现步骤。6.某一学院2009—2010学年第一学期学生选课资料存放在文件sc091001.xls中,第一个工作表的一部分如表1所示: 表1学生选课信息课程代码课程名称学号姓名SS2008数据结构与算法0840110001喜羊羊SS2008数据结构与算法0840110002灰太狼SS2008数据结构与算法0840110003钱不多请用JavaExcel组件读取其内容,并显示输出。习题一、选择题1.容器Panel和Applet缺省使用的布局编辑策略是?()A、BorderLayout B、FlowLayoutC、GridLayout D、CardLayout2.AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件:

A、TextAreaB、Panel

C、AppletD、Canvas

3.下列属于图形用户界面元素的有:()A.Applet B.窗口 C.按钮 D.线程4.如果希望所有的控件在界面上均匀排列,应该使用下列那种布局管理器?()A.BoxLayout B.GridLayoutC.BorderLayout D.FlowLayout5.下列用户图形界面组件在软件安装程序中常见的是()

A、滑块B、进度条C、对话框D、标签

6.每个使用Swing组件的程序必须至少有一个()A.按钮 B.顶层容器 C.标签 D.菜单二、填空题1.Java中有提供丰富的图形功能的______________和javax.swing两个包。AWT:是AbstractWindowToolkit的缩写,中文意思是“抽象窗口工具包”;Swing:又称为轻量级组件,它是Java的改进版本。2.AWT包中的组件可分为三大类:___________,如窗口(Window)等;独立组件,如标签(Label)等;菜单类,如菜单条(MenuBar)等。3.Java把Component类的子类或间接子类创建的对象称为___________,把Container的子类或间接子类创建的对象称为一个容器。4.在Swing用户界面的程序设计中,____________可以被添加到其它容器中去。5.对话框有_____________和____________两种。这两种对话框的区别是:当____________对话框弹出时,只有关闭此对话框才能继续进行其它窗口的操作;当_________________对话框弹出时,即使不关闭,也可以对后面的的窗口进行操作。三、思考题1.JavaGUI中有哪些容器类?哪些是组件类?2.Swing和AWT是什么关系?Swing有什么特点?3.JavaGUI中有哪几种常用的布局方式,各有什么特点?4.下拉菜单和弹出菜单设计用了哪些类?其设计步骤包含哪些?5.Jtable和JTree的构造函数分别有哪些?四、编程题1.编写java应用程序,在Frame上面放一个Panel。在Panel上面添加两个按钮。要求Panel的背景颜色为灰色,Frame大小为长100,宽100,在屏幕坐标(100,100)的位置显示。如图1所示。图1一个按钮组件应用程序2.编写应用程序,实现下面输出的图形效果,要求在创建2个Panel面板类对象pleft、pright,将左边的4个标签放在面板pleft中,布局方式为GridLayout(4x1),需要设置水平、垂直间距;再将右边的其它组件放在另一个面板pright中,布局方式也为GridLayout(4x1);最后,将pleft、pright添加到窗体中,布局方式为FlowLayout。如图2所示。图2一个组件类综合应用程序3.编写一个简单的文本编辑器程序,运行后的效果如图3所示。要求熟练掌握包括菜单条MenuBar、菜单Menu、菜单项MenuItem、菜单快捷键MenuShortcut对象的创建和使用的方法,懂得如何设计窗体菜单。图3一个简单的文本编辑器程序4.编写继承自JFrame类的窗口应用程序,界面效果如图4所示。创建5个按钮(JLabel)。

采用网格型(GridLayout)布局(注:网格型布局管理器将成员按网格型排列,每个成员尽可能地占据网格的空间,每个网格也同样尽可能地占据空间,从而各个成员按一定的大小比例放置)。图4一个网格型布局管理器程序5.参照书本10.4.6JTable类小节中,JtableExample.java源程序案例,编写以DataGrid形式显示数据库查询结果和相关JTable操作程序。为能够得到正确结果,请在当前目录下建立数据库student.mdb。程序运行效果如图5所示。图5DataGrid和JTable应用程序6.使用JTree类进行widnows界面设计编程,程序运行效果如图6所示。这里可以使用构造函数来输入想要的节点数据,即以Hashtable当作JTree的数据输入。图6JTree类应用程序习题一、选择题1.Java中监听事件和处理事件()。A.都由Listener完成B.都由在相应事件Listener处登记过的组件完成C.由Listener和组件分别完成D.由Listener和窗口分别完成2.在下列事件处理机制中哪个不是机制中的角色()。A.事件B.事件源C.事件接口D.事件处理者3.addActionListener()方法中的this参数表示的意思是()。A.当有事件发生时,应该使用this监听器B.this对象类会处理此事件C.this事件优先于其他事件D.以上均正确4.要判断关闭窗口的事件,应该添加的监听器是()。A.鼠标监听器B.鼠标移动监听器C.窗口监听器D.以上监听器均可5.以下哪个是正确的事件处理方法()。A.mousePressed(MouseEvente){}B.MousePressed(MouseClicke){}C.functionKey(KeyPressk){}D.componentAdded(ContainerEvente){}6.关于Java的事件处理以下那条为真?()A.一个类可以实现多个监听者接口;B.如果一个类实现一个监听者接口,它只要覆盖其用到的方法;C.MouseMotionAdapter类的所有方法返回类型均为void;D.以上均为真。二、填空题1.事件委托模型中,要让事件侦听器能够处理相应事件,必须向__________注册,并实现相应侦听接口的所有方法。2.Java的事件处理模型是授权事件模型,即一个________________产生一个事件(event)并把它送到一个或多个的监听器(listener)那里。3.Java中,当按钮获得监视器后,单击按钮,就发生_____________________事件。4.当释放鼠标按键时,将产生________________事件。5.Java为那些声明了多个方法的Listener接口提供了一个对应的_________,在该类中实现了对应接口的所有方法。6.Java将所有组件可能发生的事件进行分类,具有共同特征的事件被抽象为一个_________。7.图形用户界面通过_________响应用户和程序的交互,产生事件的组件称为_________。三、思考题1.简述Java的事件处理模型。2.简述Java中的事件处理机制。3.事件处理程序需要包括哪三个部分?4.简述按钮按键事件的注册、监听和事件处理过程。5.简述按钮鼠标事件的注册、监听和事件处理过程。6.简述按钮键盘事件的注册、监听和事件处理过程。四、编程题1.编写动作事件处理应用程序,实现单击按键时分别改变窗体背景色的功能。创建1个窗口,1个面板对象,实现动作侦听接口ActionListener操作;创建3个按键组件,作为事件源分别向按钮注册监听者对象。编写接口方法actionPerformed(ActionEvente)代码实现上述功能,运行效果如图1所示。图1一个按键事件处理程序2.编写一个窗口事件处理程序,关闭窗口时弹出对话框(Dialog)确认窗口,按下‘否’时,窗口保留,按下‘是’时,退出窗口。运行界面如图2所示。实现窗口侦听接口WindowListener,改写windowClosing(WindowEvente)等接口方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论