《Java程序设计》课后习题参考答案_第1页
《Java程序设计》课后习题参考答案_第2页
《Java程序设计》课后习题参考答案_第3页
《Java程序设计》课后习题参考答案_第4页
《Java程序设计》课后习题参考答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

高等院校计算机基础教育规划教材《Java程序设计》课后习

题参考答案

习题1参考答案

1.Java语言的特点有哪些?

答:参考1.1.2

防止直接访问数据变量看起来有些奇怪,但它实际上却对使月类的程序质量有极大

的好处。既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。因

此,如果要求类成员内部的一致性,就应该通过类本身的方法来处理。

这种数据隐藏技术就是面向对象的重要特性一封装。它将类的外部界面与类功能

的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用

外部界面,通过访问接口实现对数据的操作。即使实现细节发生了改变,还可通过界面

承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。

2.简述封装的优点。

答:封装是一个简单而有效的思想,优点有:(1)模块化,对内成为一个结构完整、

可进行自我管理、自我平衡、高度集中的整体。(2)信息隐蔽,对外则是一个功能明确、

接口单一、可在各种适合的环境下都能独立工作的有机单元。

面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何

实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可

移植性和安全性,同时也有利于对复杂对象的管理。类的封装性使得代码的可重用性大

为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。

3.Java的基本工具有哪些?

(1)javac编译器

(2)java解释器

(3)jdbJava语言调试器

(4)javadocAPI文档管理器

(5)javah头文件生成器

(6)appletviewer小应用程序浏览器

(7)javap类文件反汇编器

4.Java开发环境是如何配置的?

答:对于Windows2000以上版本的操作系统,可以打开[控制面板]窗口,双击其

中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。在

出现的[环境变量]窗口中,在[系统变量]框中选择[Path]项,单击[编辑]按钮,在弹出的[编

辑系统变量]窗口的[变量值]框后加上上面两条语句。

习题2参考答案

1.Java语言包含哪些数据类型?

答:包含基本数据类型和复合数据类型。基本类型包括整数类型、浮点数类型、布

尔类型。复合类型包括类类型(ClassType)>接口类型(InterfaceType)与数组类型(Array

Type)。

2.Java有多少关键字?

答:abstract,continue,for,new,switch,boolean,default,goto*,null,synchronized,

break,do,if,package,this,byte,double,implements,private,threadsafe,byvalve*,else,

import,protected,throw,case,extends,instanceof,public,transient,catch,false,int,return,

true,char,final,interface,short,try,class,finally,long,static,void,const*,float,native,

super,while

3.byte、short、int、long和char整数类型各占了多少字节?

答:byte占了1字节,short占了2字节,int占了4字节,long占了8字节,char

占了2字节。

4.Java的控制结构有哪几类?

答:流程控制语句可以分为选择、循环和跳转3大类。

习题3参考答案

1.声明类的格式是什么?

答:

[类修饰符]class类名称[extends父类名称][implements接口名称]

(

类主体

1

2.面向对象程序设计中,什么是构造函数?

答:类类型声明方法成员,如果方法名称与类名称一样,这种方法成员称为构造函

数。

习题4参考答案

1.面向对象程序设计中,什么是封装?

答:OOP将处理过程与数据合并在一起处理。

2.面向对象程序设计中,什么是数据抽象化?

答:OOP程序设计的重心为对象,因些对象被视为拥有本身数据与处理过程的组

件,这些组件都有其独立性。所以对象内、外程序的处理就有某种程度的限制,换句话

说,对象外部并不明了对象内部数据如何传递、改变,如何处理过程。这种隐藏对象内

部的数据及处理过程的方式,使得对象抽象化,有人将这种处理方式称为数据抽象化。

类库就是JavaAPI(ApplicationProgramminginterface,应用程序接口),是系统提供的已

实现的标准类的集合。在程序设计中,合理和充分利用类库提供的类和接口,不仅可以

完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程

效率,使程序简练、易懂。

习题5参考答案

1.简述数据类型类的常用方法。

答:对所有数据类型类的对象,形如“对象名.xxxxValueO”的成员方法,用来获

得对象中的基本类型数据。包括:

对象名.doubleValue();

对象名.inlValue。;

对象名.byteValue。;

对象名.shortValue。;

对象名JongValue。;

对象名.charValue();

对象名foatValue。;

对象名.booleanValue。;

2.何为命令行参数?

答:所谓命令行参数,是指执行某个Java应用程序时,从命令行中向程序直接传

送的参数。我们可以获得这些参数的值,并运用到程序的执行过程中。

3.如何定义和创建一个数组?

答:要创建一个数组,必须首先定义数组变量所需的类型。通用的一维数组的声明

格式是:typearrayName口洪中,type定义了数组的基本类型,arrayName是数组的

名称。基本类型决定了组成数组的每一个基本元素的数据类型。

4.如何声明一个二组数组?

答:二维数组的一般声明格式如下:

数组元素类型数组名[川;

数组元素类型nn数组名;

5.列举一下数据类型类的常用方法。

答:对所有数据类型类的对象,形如“对象名、xxxxvalue()”的成员方法,用来

获得对象中的基本数据类型。包括:对象名、doubleValue();对象名、iniValue();

对象名、byteValue();等。

习题6参考答案

1.解释下列方法的意义:

(1)toLowerCase()(2)toUpperCase()(3)charAt()

(4)equalsIgnoreCaseO(5)capacity()(6)setLength()

(7)reverse()(8)replace(start,end,str)

答;

(1)将字符转换成小写字符

(2)将字符转换成大写字符

(3)从0算起第index字符

(4)忽略大小写,比较两字符串是否,相等,若是返回true,否则返回false

(5)计算字符串缓冲器的容量

(6)设定字符串的长度

(7)将字符串反转排列

(8)返回字符串缓冲器从stare开始到end结束字符被str字符串取代

2.capacity。与length。的用法有什么不同?

答:capacity()用来计算字符串缓冲器的容量,length()用于计算字符串长度。

如:StringBufferkol=newStringBuffer(20)>则koicapacity()=20,但koi,length

O可能是0或20,视koi字符串长度而定。

习题7参考答案

1.什么叫流?流式输入输出有什么特点?

答:Java中的流是对数据传递机制的抽象。流分为两种:输入和输出。Java中所

有输入/输出操作都是使用基本字节类型完成的。字符是通过值为字节类型的特殊代码

处理的。Java程序的所有读写操作都是通过流实现的。流是一组字符序列。输入源可以

是键盘、文件或网络,输出自的地可以是屏幕、文件或网络。数据作为字节序列进行发

送和接收。

2.File类有哪些构造函数和常用方法?并举例说明。

答:使用下面的构造函数创建File对象:

File(Stringdirpath)

File(Stringdiq?ath,Stringnlename)

File(FncdirObj,Stringfilenamc)

这里,dirpath是文件的路径名,filename是文件名,dirObj是指定目录的Fie对象。

下面的例子创建了3个文件:fl、已和f3,第一个File对象只有目录路径一个参

数。第二个有两个参数一一目录和文件名。第三个包括赋给n的文件路径和文件名。f3

和也指的是同一个文件。最后一个包括指定文件“autoexec,bai”所在的目录名称。

Filefl=newFiIe("/");

Filef2=newFiIe("/","autoexec,bat");

Filef3=newFile(fl,"autoexec,bat");

Filef3=newFile("user"/'autoexec.bat");

File类的方法

下面是File类中一些重要的方法:

getName()

该方法用来获取指定文件的名称。

getPath()/getAbsolutePath()

这两个方法分别得到指定文件的相对路径和绝对路径。

exists()

该方法用来判断命名的文件是否存在于目录当中。

isFile()/isDirectory()

这两个方法分别用来判断命名的文件是否是普通文件和目录。

canReadO/canWriteO

这两个方法分别用来判断指定文件是否可读写。

lastModified()

该方法返回文件最近一次被修改的时间。

lengthO

该方法返回文件的大小,以字节记。

delete()

该方法用来删除指定文件。

renameTo()

该方法用来对已知文件进行重命名。它将目的文件或者说重命名后的文件对象作为

参数。

isFile()

该方法通常返回true,但是一些特殊的文件如设备驱动和命名管道可能与普通文件

不同,所以该方法可以确定所访问实体是一个文件。

isAbsolute()

如果文件是绝对路径该方法返回true,相对路径则返回false。

3.简单介绍一下RandomAccessFile类。

答:RandomAceessFile类封装了一个随机访问文件。它不是从输入输出流中获得。

相反,它实现了定义基础F0方法的Datalnput和DalaOutput这两个接口。它也支持定

位请求,例如可以在文件中定位文件指针。它包含下面两个构造函数:

RandomAccessFiIe(FilefObj,Stringacc)

RandomAccessFile(Stringfnamc,Stringacc)

在第一种形式下,fObj是指作为File对象打开的文件名称。在第二种形式下,以

fname作为参数传递文件名。在两种情况下,acc都决定了允许访问什么样的文件类型。

如果是“r”,那么可以对文件进行读访问,如果是“rw”,则可以进行读写访问。seek()

方法用来设置文件指针的当前位置。

voidseek(longnewPos)

这里,newpos是指以字节方式指定的新位置或者从文件头或文件尾开始的文件指

针。调用seek方法之后,将会在新的文件位置发生读或写的操作。

4.举例实现写文件FileOutputStream类。

写文件举例如下:

//FilcOutputSamplc.java

importjava.io.*;

publicclassFileOulpulSainple{

publicstaticvoidmain(Stringargs[]){

Stringname="OutputFiIeExample.txt";

FileOutputStreamoutputS:re~m;〃文件输出流对象

〃缓冲数组,假设写入文件的长度不超过1024字节

byte[]buffer=newbyte[1024];

try(

outputStream=newFileOutputStream(newFile(name));

try(

System.out.println("\nlr.putfilecontent(Tab+Entertoexit):

〃循环读入字符,Tab+Enter键结束

intb,i=0;

while(i<1024&&(char)(b=System.in.read())!='\f){

buffer[i++]=(byte)b;

)

outputStream.write(buffer);

outputStrcam.close();

)

catch(lOExceptione){

System.err.printin("I/OExceptionwhenwritingorclosing:"+

e.toString());

)

)

catch(Exceptione){

System.err.printin(e.toString());

)

System.out.println("ThecontenthasbeensavedtoFile"+name);

)

)

编译运行程序,程序会提示用户输入,用户输入“Tab+Entcr”后将退出向文件中

输入内容,然后用户输入的内容将保存到文件OutputFileExample.txt中。

5.数据流分哪两种?

答:数据流分为数据输入流DatalnputStream和数据输出流DataOutputStream。

(1)数据输入流DatalnputSrtream

类DatalnputSlreani继承自FilterlnpulStream类,并实现了Dalalnput接口。其构造

函数如下:

publicDatalnputStream(InputStreamin);

其构造函数以一个字节输入流in对象位参数,在创建DatalnputStream对象时,in

是InputStream类的子类的一个对象。

DatalnputStream类常用的构造方法包括:

publicfinalihtrcad(int[]b);

publicfinalintread(int[]b»inioffset,intlen);

publicfinalinireadln(();

前两个方法主要是将输入流对象中的数据读入到一个缓冲数组b中:而第三个方法

是读取一个整型数据,与该方法类似的还有readChar()、readBoolean。、readFloat。、

readDoubleO等,这些方法都是读入一个简单类型的数据,可以是Java中任何基本数据

类型。

(2)数据输出流DataOutputStream

类DataOutputStream继承自FilterOutputStream类,并实现了DataOutput接口,其

构造函数为:

publicDataOutputStream{OutputStreamout);

类DataOulpulStream中常用的方法主要有:

publicvoidflush();

publicvoidwrite(intb);

publicvoidwrite(byte[]b,intoffset,intlen);

publicvoidwriteByte(intv);

publicvoidwriteBytes(Strings);

publicvoidwriteChar(intv);

publicvoidwriteChars(Strings);

当然,写方法中还有写入其他任何一种简单数据类型的方法。

习题8参考答案

1.叙述TextComponent组件的功能。

答:TextComponent组件用于编辑文本。

2.TextComponent类包括哪两种子类?

答:TextComponent类包括文本框(TextField)和文本域(TextArea)两种子类。

3.编写一个程序,使用户能够使用鼠标在Applet中绘制一个矩形。按住鼠标左键,

确定矩形左上角,然后拖动鼠标,在需要的位置(即矩形右下角)释放鼠标。另外,在

状态栏中显示矩形面积。

参考程序如下:

importjava,applet.Applet;

importjava.awt.*;

importjava.awt.event.*;

publicclassChp9_3_EextendsAppletimplements

MouseListener,MouseMotionListener{

intxl,yl,x2,y2;

publicvoidinit(){

addMouseListener(this);

ciddMouseMotionListener(this);

)

publicvoidpaint(Graphicsg){

g.drawRect(xl,yl,x2,y2);

intarea=Math.abs(x2-xl)*Math.abs(y2-yl);

showStatus("矩形面积:"+area);

)

//implementationofMouseListener

publicvoidmousePressed(MouseEvente){

xl=e.getXO;

yl=e.getY();

)

publicvoidmousedieked(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmouseReleased(MouseEvente){)

//implementationofMouseMotionEvent

publicvoidmouseDragged(MouseEvente){

x2=e.getXO;

y2=e.getYO;

repaint();

)

publicvoidmouseMoved(MouseEvente){)

)

习题9参考答案

1.简述JavaApplet的运行过程。

答:Applet的运行过程:首先将编译好的字节码文件和编写好的HTML文件(其中

包含字节码文件名)保存在Web服务器的合适路径下;当WWW浏览器下载此HTML

文件并显示时,它会自动下载HTML中指定的JavaApplet字节码,然后调用内置在浏

览器中的Java解释器来解释执行下载到本机的字节码程序。

2.举例说明Applet中的参数传递。

答:例如:

importjava,applet.*;

importjava,awt.*;

publicclasspanuneterextendsApplet

(

Stringinput;

publicvoidinit()

{

input=getParamctcr("String");

)

publicvoidpaint(Graphicsg)

(

g.drawString(input,100,100);

})

可以使用下面的代码给Applet传递一个参数。这里通过VALUE属性传递了String

类型的输入。NAME指出在Java代码中的参数名。

<appletcode=',parameter,cla

温馨提示

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

评论

0/150

提交评论