版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题解答第1章Java程序语言概述一、选择题1.D2.B3.C4.B5.A6.B7.C二、简答题1.Java语言具有以下一些特点:简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。2.一般来讲,要创建一个Java程序需要以下几个过程:第一步:编写Java源程序。由于JDK没有提供专门的编辑工具,所以可以通过任意文本编辑器进行编写Java源代码,例如记事本、notepad等,程序编辑完成后保存文件,然后将文件的扩展名改为“.java”。第二步:编译源程序。在命令行窗口中首先找到编写的Java源程序的目录,然后通过javac命令进行编译,将其编译成Java虚拟机能够识别的字节码文件,以“.class”作为文件扩展名。第三步:调试运行程序。生成字节码文件后,通过java命令对“.class”文件进行解释读取并翻译成计算机能执行的代码,执行完成后,查看执行结果。如果程序有编译错误或者逻辑错误,则需要通过提示来修改程序并纠正错误,然后重新进行编译、运行。3.JavaSE(Java
Platform,StandardEdition)。JavaSE以前称为J2SE。它允许开发和3部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)和Web2.0应用程序。JavaME(JavaPlatform,MicroEdition)。这个版本以前称为J2ME。JavaME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。4.1.JAVA_HOME:JDK安装目录。作用:其他相关环境变量配置可以引用,更加方便简洁。2.Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;作用:使系统可以找到并调用java.exe和javac.exe。3.classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
作用:classpath环境变量的作用--告诉java虚拟机所有的可执行文件.class的位置。三、编程题1.publicclassTest1_1{ publicstaticvoidmain(String[]args){ System.out.println("IloveJava!"); }}2.publicclassTest1_2{ publicstaticvoidmain(String[]args){ intr=3; floatpai=3.14f; floats=pai*r*r; System.out.println("圆形的面积为:"+s); }}第2章Java程序设计语法基础一、选择题1.D2.D3.D4.C5.B6.C7.D8.A二、简答题1.Java的基本数据类型包括整型、浮点型、字符型、布尔型2. float型常量应当用F或f做后缀,例如123.4F。 double型常量应当用D或d做后缀,例如123.4d,允许省略后缀。3.见书2.5.2小节三、编程题1.importjava.util.Scanner;publicclassTest2_1{ publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); System.out.println("请输入第一个数字:"); inta=input.nextInt(); System.out.println("请输入第二个数字:"); intb=input.nextInt(); System.out.println("请输入第三个数字:"); intc=input.nextInt(); intmax; if(a>b){ max=a; }else{ max=b; } if(max<c){ max=c; } System.out.println("最大的数是:"+max); } }2.publicclassTest2_2{ publicstaticvoidmain(String[]args){ intsum=0; for(inti=1;i<=20;i++){ intn=1; for(intj=1;j<=i;j++){ n=n*j; } sum=sum+n; } System.out.println("1!+2!+3!+…+20!="+sum); }}3.publicclassTest2_3{ publicstaticvoidmain(String[]args){ inti,j; for(i=1;i<=100;i++){ if(i==1||i==2){ System.out.println(i); continue; } for(j=2;j<i;j++){ if(i%j==0) break; if(j==i-1) System.out.println(i); } } }}4.publicclassTest2_4{ publicstaticvoidmain(String[]args){ for(inti=1;i<=9;i++){ for(intj=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+"\t");//\t跳到下一个TAB位置 } System.out.println(); } }}5.publicclassTest2_5{ publicstaticvoidmain(String[]args){ intstarLine=7;//改变starLine的大小输出不同的效果 for(inti=1;i<=starLine;i++){ for(intj=1;j<=i;j++){ System.out.print("*"); } System.out.println(); } }}第3章数组与字符串一、选择题1.C2.D3.A4.D5.D6.C7.D8.C9.A二、简答题1.见书3.1.1和3.1.2。2.见书3.1.33.数组下标的类型是长整型。数组最小的下标是0。表示数组名为a的第三个元素:假设数组为abc(),则第三个元素为abc(2)。因为数组从0开始,第三个就是2。4.使用数组时要注意下标不能超出范围,如果超出范围,在程序运行时,系统就会抛出数组下标越界异常。访问的时候注意下标,下标为从0开始。三、编程题1.publicclassTest3_1{ publicstaticvoidmain(String[]args){ intarr[]=newint[]{1,3,5,7,9,11,13,15,17,19};for(inti=0;i<arr.length/2;i++){inttemp=arr[i];arr[i]=arr[arr.length-i-1];arr[arr.length-i-1]=temp;}for(inti=0;i<arr.length;i++){//System.out.println(arr[i]);//每个一行System.out.print(""+arr[i]);//全部一行}System.out.println(); }}2.importjava.util.Scanner;//提示用户输入学生个数,学生姓名和他们的成绩,然后按照学生成绩降序排列;publicclassTest{ privateStringname; privatedoublegrade; publicdoublegetGrade(){ returngrade; } publicvoidsetGrade(doublegrade){ this.grade=grade; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicStringtoString(){ return; } publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); System.out.println("请输入学生个数"); intstuNum=input.nextInt(); TestobjArr[]=newTest[stuNum]; for(inti=0;i<objArr.length;i++){ objArr[i]=newTest(); System.out.println("请输入第"+(i+1)+"个学生的姓名"); Stringname=input.next(); objArr[i].setName(name); System.out.println("请输入第"+(i+1)+"个学生的成绩"); longgrade=input.nextLong(); objArr[i].setGrade(grade); } System.out.println("打印开始"); for(inti=0;i<objArr.length;i++){ for(intj=i+1;j<objArr.length;j++){ if(objArr[i].getGrade()<objArr[j].getGrade()){ Tests=newTest(); s=objArr[i]; objArr[i]=objArr[j]; objArr[j]=s; } } } for(inti=0;i<objArr.length;i++){ System.out.println(objArr[i].getName()+"的成绩是:"+objArr[i].getGrade()); } }}第4章类和对象一、选择题1.D2.B3.C4.D5.C6.D7.B8.A9.A10.A二、简答题1.类是对象的抽象,对象是类的具体实例化。2.定义一个类的步骤:定义类使用关键字class,然后定义类名。编写类的属性,即声明变量。编写类的方法。类的一般格式如下:class类名{ //定义属性部分(成员变量) 属性1的类型属性1; 属性2的类型属性2;……属性m的类型属性m;//定义方法部分方法1();方法2();……方法n();}3.详见4.4.2小节三、编程题1.publicclassPeople{ Stringname; intage; charsex; doubleheight; People(Stringn,inta,chars,doubleh){ name=n; age=a; sex=s; height=h; } voidtalk(){ System.out.println("你好"); } intcaculate(inta,intb){ returna+b; } publicstaticvoidmain(String[]args){ Peoples=newPeople("张三",18,'男',180.0); s.talk(); System.out.println("计算结果是:"+s.caculate(23,45)); }}2.publicclassPoint{ privatedoublex; privatedoubley; publicPoint(){ } publicPoint(doublex,doubley){ this.x=x; this.y=y; } publicstaticdoubledistance(Pointp1,Pointp2){ returnMath.sqrt((Math.pow(p1.x-p2.x,2)+Math.pow(p2.y-p1.y,2))); } publicstaticvoidmain(String[]args){ Pointp1=newPoint(1,2); Pointp2=newPoint(0,0); System.out.println(Point.distance(p1,p2)); }}5.7习题1.选择题下列不属于面向对象编程的3个特征的是(B)封装B.指针操作C.多态D.继承下列关于继承性的描述中,错误的是(C)一个类可以同时生成多个子类子类继承父类除了private修饰之外的所有成员Java语言支持单重继承和多重继承Java语言通过接口实现多重继承下列对于多态的描述中,错误的是(A)Java语言允许运算符重载Java语言允许方法符重载Java语言允许成员变量覆盖多态性提高了程序的抽象性和简洁性关键字super的作用是(D)用来访问父类被隐藏的成员变量用来调用父类中被重载的方法用来调用父类的构造方法以上都是下面程序定义了一个类,关于该类,说法正确的是(D)abstractclassAa{…}该类能调用Aa()构造方法实例化一个对象该类不能被继承该类的方法都不能被重载以上说法都不对下列关于接口的描述中,错误的是(D)接口实际上是由常量和抽象方法构成的特殊类一个类只允许继承一个接口定义接口使用的关键字是interface在继承接口的类中通常要给出接口中定义的抽象方法的具体实现下面关于包的描述中,错误的是(A)包是若干对象的集合B.使用package语句创建包C.使用import语句引入包D.包分为有名包和无名包两种如果java.abc.def中包含xyz类,则该类可记作(C)A.java.xyzB.java.abc.xyzC.java.abc.def.xyzD.java.xyz.abc下列方法中,与方法publicvoidadd(inta){}为不合理的重载方法的是(B)A.publicvoidadd(chara)B.publicintadd(inta)C.publicvoidadd(inta,intb)D.publicvoidadd(floata)设有如下类的定义:publicclassparent{intchange(){}}ClassChildextendsParent{}则下面的方法可加入Child类中的是(A)A.publicintchange(){}B.finalintchange(inti){}C.privateintchange(){}D.abstractintchange(){}2.填空题(1)在Java程序中,把关键字(super)加到方法名称的前面,可实现子类调用父类的方法。(2)接口是一种只含有抽象方法或(常量)的特殊抽象类。(3)Java使用固定于首行的(package)语句来创建包。(4)Java的多态性主要表现在(变量隐藏)(方法覆盖)(方法重载)三个方面。(5)没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能改变值的量称为(常量)。3.编程题(1)建立一个汽车Auto类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。并通过不同的构造方法创建实例。至少要求:
汽车能够加速,减速,停车。
再定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法。1.创建Auto类packageorg.hanqi.practise;23publicclassAuto{45privateinttyre;6privateStringcolor;7privatedoubleweight;8privatedoublespeed;9publicAuto(inttyre,Stringcolor,doubleweight,doublespeed){10super();11this.tyre=tyre;12this.color=color;13this.weight=weight;14this.speed=speed;15}16publicvoidaccelerate()17{18System.out.println("Auto加速");19}20publicvoiddeceleration()21{22System.out.println("Auto减速");23}24publicvoidstop()25{26System.out.println("Auto停车");27}28}2.创建Car类packageorg.hanqi.practise;23publicclassCarextendsAuto{456publicCar(inttyre,Stringcolor,doubleweight,doublespeed){7super(tyre,color,weight,speed);89}10privateStringairconditioner;11privateStringCD;12publicvoidaccelerate()13{14System.out.println("Car加速");15}16publicvoiddeceleration()17{18System.out.println("Car加速");19}20}(2)已知一个抽象类AbstractShape如下所示:abstractclassAbstractShape{finaldoublePI=3.14;publicabstractdoublegetArea();publicabstractdoublegetGirth();}编写AbstractShape类的一个子类,使该子类实现计算圆面积的方法getArea()和计算周长的方法getGirth()。5.7习题1.选择题下列不属于面向对象编程的3个特征的是(B)封装B.指针操作C.多态D.继承下列关于继承性的描述中,错误的是(C)一个类可以同时生成多个子类子类继承父类除了private修饰之外的所有成员Java语言支持单重继承和多重继承Java语言通过接口实现多重继承下列对于多态的描述中,错误的是(A)Java语言允许运算符重载Java语言允许方法符重载Java语言允许成员变量覆盖多态性提高了程序的抽象性和简洁性关键字super的作用是(D)用来访问父类被隐藏的成员变量用来调用父类中被重载的方法用来调用父类的构造方法以上都是下面程序定义了一个类,关于该类,说法正确的是(D)abstractclassAa{…}该类能调用Aa()构造方法实例化一个对象该类不能被继承该类的方法都不能被重载以上说法都不对下列关于接口的描述中,错误的是(D)接口实际上是由常量和抽象方法构成的特殊类一个类只允许继承一个接口定义接口使用的关键字是interface在继承接口的类中通常要给出接口中定义的抽象方法的具体实现下面关于包的描述中,错误的是(A)包是若干对象的集合B.使用package语句创建包C.使用import语句引入包D.包分为有名包和无名包两种如果java.abc.def中包含xyz类,则该类可记作(C)A.java.xyzB.java.abc.xyzC.java.abc.def.xyzD.java.xyz.abc下列方法中,与方法publicvoidadd(inta){}为不合理的重载方法的是(B)A.publicvoidadd(chara)B.publicintadd(inta)C.publicvoidadd(inta,intb)D.publicvoidadd(floata)设有如下类的定义:publicclassparent{intchange(){}}ClassChildextendsParent{}则下面的方法可加入Child类中的是(A)A.publicintchange(){}B.finalintchange(inti){}C.privateintchange(){}D.abstractintchange(){}2.填空题(1)在Java程序中,把关键字(super)加到方法名称的前面,可实现子类调用父类的方法。(2)接口是一种只含有抽象方法或(常量)的特殊抽象类。(3)Java使用固定于首行的(package)语句来创建包。(4)Java的多态性主要表现在(变量隐藏)(方法覆盖)(方法重载)三个方面。(5)没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能改变值的量称为(常量)。3.编程题(1)建立一个汽车Auto类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。并通过不同的构造方法创建实例。至少要求:
汽车能够加速,减速,停车。
再定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法。1.创建Auto类packageorg.hanqi.practise;23publicclassAuto{45privateinttyre;6privateStringcolor;7privatedoubleweight;8privatedoublespeed;9publicAuto(inttyre,Stringcolor,doubleweight,doublespeed){10super();11this.tyre=tyre;12this.color=color;13this.weight=weight;14this.speed=speed;15}16publicvoidaccelerate()17{18System.out.println("Auto加速");19}20publicvoiddeceleration()21{22System.out.println("Auto减速");23}24publicvoidstop()25{26System.out.println("Auto停车");27}28}2.创建Car类packageorg.hanqi.practise;23publicclassCarextendsAuto{456publicCar(inttyre,Stringcolor,doubleweight,doublespeed){7super(tyre,color,weight,speed);89}10privateStringairconditioner;11privateStringCD;12publicvoidaccelerate()13{14System.out.println("Car加速");15}16publicvoiddeceleration()17{18System.out.println("Car加速");19}20}(2)已知一个抽象类AbstractShape如下所示:abstractclassAbstractShape{finaldoublePI=3.14;publicabstractdoublegetArea();publicabstractdoublegetGirth();}编写AbstractShape类的一个子类,使该子类实现计算圆面积的方法getArea()和计算周长的方法getGirth()。1.选择题(1)Java中用来抛出异常的关键字是()A.tryB.catchC.throwD.finally(2)()类是所有异常类的父类。A.ThrowableB.ErrorC.ExceptionD.AWTError(3)在Java语言中,异常处理的出口是()A.try{…}子句B.catch{…}子句C.finally{…}子句D.以上说法都不对(4)当方法遇到异常又不知如何处理时,下列说法正确的是()A.捕获异常B.声明异常C.抛出异常D.嵌套异常(5)自定义异常类时,可以继承的类是()A.Error
B.Applet
C.Exception及其子类
D.AssertionError(6)在异常处理中,将可能抛出异常的方法放在()语句块中A.throws
B.catch
C.try
D.finally(7)对于try{……}catch子句的排列方式,下列正确的一项是()A.子类异常在前,父类异常在后
B.父类异常在前,子类异常在后C.只能有子类异常
D.父类异常与子类异常不能同时出现(8)下面程序段的执行结果是什么?()publicclassFoo{publicstaticvoidmain(String[]args){try{return;}finally{System.out.println("Finally");}}}A.编译能通过,但运行时会出现一个例外。
B.程序正常运行,并输出
"Finally"。C.程序正常运行,但不输出任何结果。D.因为没有catch语句块,所以不能通过编2.填空题(1)捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-()语句捕获并处理。(2)Throwable类有两个子类:()类和Exception类。(3)Java虚拟机能自动处理()异常。(4)抛出异常,生成异常对象都可以通过()语句实现。3.编程题(1)编写一个程序,从键盘读入5个整数存储在数组中,要求在程序中处理数组越界的异常。1.选择题(1)下列说法中错误的是()A.对Swing构件只能设置一个边框B.Swing构件能建立组合边框或自己设计边框C.在Swing构件中,按钮可以使用图标修饰D.Swing构件支持键盘代替鼠标的操作(2)向容器添加新构件的方法是(A)A.add()B.insert()C.fill()D.set()(3)关于布局管理器LayoutManager,下列说法中正确的是(D)A.布局管理器是用来部署Java应用程序的网上发布的B.LayoutManager本身不是接口C.布局管理器是用来管理构件放置在容器中的位置和大小的D.以上说法都不对(4)JTextField类提供的GUI功能是(A)A.文本区域B.按钮C.文本字段D.菜单(5)将GUI窗口划分为东、西、南、北、中五个部分的布局管理器是(D)
A.FlowLayoutB.GridLayoutC.BoxLayoutD.BorderLayout(6)关于Panel,下列说法中错误的是(D)A.Panel可以作为最外层的容器单独存在B.Panel必须作为一个构件放置在其他容器中C.Panel可以是透明的,没有边框和标题D.Panel是一种构件,也是一种容器2.填空题(1)(BorderLayout)包括5个明显的区域:东、南、西、北、中。(2)Java的图形界面技术经历了两个发展阶段,分别通过提供AWT开发包和(Swing)开发包来体现。(3)可以使用setLoaction()、setSize()或(setBounds())中的任何一种方法设置组件的大小或位置。(4)(GridLayout)布局管理器使容器中各个构件呈网格布局,平均占据容器空间。(5)框架的默认布局管理器(BorderLayout)。3.编程题(1)制作如图7-20所示的登录界面。图7-20packagecom.zhouzhou;importjava.awt.*;importjavax.swing.*;publicclassDemo11extendsJFrame{//定义组件JPaneljp1,jp2,jp3;JLabeljlb1,jlb2;JButtonjb1,jb2;JTextFieldjtf1;JPasswordFieldjpf1;publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubDemo11d1=newDemo11();}//构造函数publicDemo11(){jp1=newJPanel();jp2=newJPanel();jp3=newJPanel();jlb1=newJLabel("用户名");jlb2=newJLabel("密码");jb1=newJButton("登录");jb2=newJButton("取消");jtf1=newJTextField(10);jpf1=newJPasswordField(10);//设置布局管理(上面忘记:extendsJFrame,这里出错了)this.setLayout(newGridLayout(3,1));//加入各个组件jp1.add(jlb1);jp1.add(jtf1);jp2.add(jlb2);jp2.add(jpf1);jp3.add(jb1);jp3.add(jb2);//加入到JFramethis.add(jp1);this.add(jp2);this.add(jp3);this.setSize(250,150);this.setTitle("登录");this.setDefaultCloseOperation(JFrame.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年毕节市交通运输行业工会委员会招聘社会工作者考试真题
- 主题词 06 读书生活-备战2022年中考语文之“真题+模拟”主题作文专项训练(原卷版)
- 市政桥梁工程专项施工方案
- 教育信息化人员违反信息化管理规定检讨书
- 关于加强基层医疗卫生机构家庭医生签约服务绩效评价的指导意见
- 机关单位工伤保险管理制度
- 告别粗心失分|五年级数学可能性暑假易错题型清零课件
- 消除心理阴霾筑牢安全防线小学二年级主题班会课件
- 珍惜水资源守护绿色地球小学二年级主题班会课件
- 中小企业财务核算流程标准化手册
- 广东省揭阳市2025-2026学年高二下学期期末考试化学试题(原卷版)
- 2026上海松江商业发展集团有限公司招聘笔试备考试题及答案详解
- 2026-2030中国AKT抑制剂行业市场现状分析及竞争格局与投资发展研究报告
- 中国双相障碍防治指南(2025版)下载
- 游乐园安全生产管理制度
- 外墙面保温砂浆施工监理实施细则
- 2026年注册信贷分析师(CCRA)能力提升B卷题库带答案详解AB卷
- 2025神介学苑历年考核真题及答案全收录
- JJF 2376-2026 智能网联汽车自动泊车性能 计量测试规范
- 跨端洞见 增长新篇-2026年跨端生态行业白皮书
- 2025年澳门大学第一轮面试题库及答案
评论
0/150
提交评论