Java课后习题答案_第1页
Java课后习题答案_第2页
Java课后习题答案_第3页
Java课后习题答案_第4页
Java课后习题答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

习题1

1—1

Java语言的主要贡献者是谁?

Java之父JamesGosling

习题2—4

publicclass表中的位置(

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

chara=*®;

charb='故';

charc='乡1;

System,out.printIn{(int)a+","+(int)b+n,'*+(int)c);

)

}

习题3—4

publicclassXiti3_4{

publicstaticvoidmain(String[]args){

for(chara=1A*;a<=*q';a++)

(

System.out.printin(a);

)

)

}

习题3—5

publicclass阶乘(

publicstaticvoidmain(String[]args){

inti=Jiecheng(2Q);

System.out.printin(i);

}

pviblxcstaticintJiecheng(inti)

(

intresult=0;

if(i==l)

result=1;

else

result=i*Jiecheng(i-1);

returnresult;

)

)

习题3—7

publicclassxiti3_7{

publicstaticvoidmain(String[]args){

inti=l;

inta=0;

while(a<=9999)

(

a+=Jiecheng(i);

if(a<=9999){

i++;

}

)

System.out.printIn(i-1);

}

publicstaticintJiecheng(inti)

(

intresult=0;

if(i==l)

result=1;

else

result-Jiecheng(i1);

returnresult;

)

}

习题4

习题4—1

类中的实例变量在什么时候会被分配内存空间?

创建一个类的实例的时候,实例变量就会分配内存空间。

4—2

什么叫做方法的重载,构造方法可以重教么??

重载:一个类中可以有多个方法,具有相同的名字,但是这些方法的参数必须不同,即或者是参

数的个数不同,或者是参数的类型不同。

构造方法可以重载,一个类里面可以有多个构造函数。

4—3

类中的实例方法可以操作类变量么,类方法可以操作实例变量么?

可以。不可以。

4—4

类中的实例方法可以通过类名直接调用么?

不可以。

4—5

简述类变量和实例变量的区别

1.不同对象的实例变量互不相同

2.所有对象共享类变量

3.通过类名直接访问类变量

4—6

C,D是错误的,不能用protected和private修饰类。

4—7

略,

4—8

-100;局部变量的名字与成员变量的名字相同,则成员变量被隐藏。

4—9

27

4—10

“**,,20,"##"100;

习题5

5—1

子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?

若子类与父类在同一包中,子类继承父类除private访问权限以外的的变量和方法。若不在

同一包中,子类只继承父类中protected和public访问权限的成员变量和方法。

成员变量的隐藏:如果所子类所声明的成员变量的名字和父类继承来的成员的名字相同,在

这种情况下子类就会隐藏掉所继承的成员变量。

方法的隐藏:子类可以通过重写,隐藏呀以继承的实例方法;

5—2

Final方法可以被子类重写么?

不可以

5—3

Abstract类里可以有abstract方法

5—4

什么叫做对象的上转型对象?

假设A类是B类的父类当用子类创建一个对象,并把这个对象的引月放到父类中时,这时

称对象a是对象b的上转型对象

5—5

下列哪些叙述是正确的:

(A)final类不可以有子类,正确。

(B)abstract类只可以有abstract方法,错误

(C)abstract类可以有非abstract方法,但是该方法不可以用final关键字修饰,错误

(D)不可以同时用abstract和final修饰一个方法。正确

5—6

15.0,8.0

5—7

98.0,12

习题6

6—1

接口中能声明变量么?

不能。

6—2

接口中能定义非抽象方法么?

不能

6—3

什么叫做接口的回调?

接口回调是指:可以把实现某一接口的类创建的对象的阴影赋值给该接口声明的接口变量

中,那么该接口变量就可以调用被该类'实现的接口方法。实际上,当接口变量调用被该类实

现的接口方法时,就是通知相应的对象调用这个方法

6—4

请说出System.out.Prlntln的输出结果。

15.0;8;

6—5

18;15;

习题7

7—1

怎样获取一维数组的长度?

数组名.length

7—2

怎样获取二维数组中一维数组的个数?

数组名.length就是它含有一维数组的个数

7—3

False;true:false;3;4.4;8.8

7—4

代码1输出结果:bird

代码2输出结果:car

7—5

参考例7—7,输出从红,黄,蓝,绿,黑5中颜色取出三种不同颜色的排列。

publicclassXiti5{

publicstaticvoidmain(String[]args){

for(Colora:Color.values())

(

for(Colorb:Color.values())

(

for(Colorc:Color.values())

(

if(a!=b&&a!=c&&b!=c){

System.out.printin(a+H,n+b+n,n+c);

)

)

}

)

System.out.printin(i);

)

}

enumColor{

红,黄,蓝,绿,黑

}

习题8

8—1

内部类的外嵌类的成员变量在内部类中仍然有效么?

有效。

8—2

内部类中的方法也可以调用外嵌类中的方法么?

可以调用

8—3

内部类中的类体中可以声明类变量刃类方法么?

不可以。

8—4

请说出下列程序的输出结果:

大家好,祝工作顺利!

8—5

96,乘数超过99

习题9

9—1

A:正确,java把string类设置为final类不可以有子类

B:string类在java.lang包中正确

C:adbcn=="abc"的值是false错误

D:"abc”.equals(、'abc〃)的值是true正确

9—2

请说出E类中的System.out.printIn的输出结果

love:Game

9—3

请说出E类中的输出结果

15:

abc我们

9—4

13579

9—5

9javahello

9—6

publicclassXiti6{

publicstaticvoidmain(String[]args){

Stringstrl='•hello";

Stringstr2='•World',;

Stringstr3=strl.toUpperCase();

System,out.printin(|str|);

str3=str2.toLowerCase();

System.out.printIn>str3);

str3=strl.concat(str2);

System,out.printInj|strj);

)

)

9—7

publicclassXiti7{

publicstaticvoidmain(String[]args){

Stringstrl="Hell。World!;

chara=t>Lrl.uhdrAL(0);

System.out.printIn(a);

a=strl.charAt(strl.length()-1);

System.out.printIn(a);

}

}

9—8

通过健盘输入年份和月份。程序输出相应的Fl历牌。

importjava.util.Calendar;

insertjava.util.Scanner;

publicclassXiti8{

publicstaticvoidmain(String[]args){

Scannerreader=newScanner(System.in);

System.out.printin:”请输入年份和月份,输入一次按一次回车”);

intx-reader.nextInt();

inty=reader.nextlnt();

CalendaBeencb=newCalendaBeen();

cb.SetYear(x);

cb.SetMonth(y);

String[]a=cb.getCalendar();

char[]str="日一二三四五六”.toCharArray();

for(charc:str)

(

System.out.printf(n%7cn,c);

)

for(inti=0;i<a.length;i++)

(

if(i%7==0)

System.out.printin();

System.out.printf(*'%4s",a[i]);

)

)

)

classCalendaBeen(

String[]day;

intyear=0,month=0;

publicvoidSetYear(intyear)

(

this.year=year;

)

publicvoidSetMonth(intmonth)

this.month=month;

)

publicString[]getCalendar()

(

String[]a=newString[42];

Calendarrill=Calendar.getlnstance();

rill.set(year,month-1,1);

intweekDay=rill.get(Calendar.DAY_OF_WEEK)-1;

intday=0;

if(month==l||month==3IImonth==7||month==8IImonth==10IImonth

==12)

day=31;

if(month==4IImonth==6IImonth==9I|month==11)

day=30;

i£(month-2){

if(year%4==0&&year%100!=0||year%400==0)

day=29;

elseday=28;

}

for(inti=0;i<weekDay;i++)

a[i]=nn;

for(inti=weekDay,n=l;i<weekDay+day;i++)

(

a[i]=String.vaiueOf(n);

n++;

}

for(inti=weekDay+day;i<a.length;i++)

a[i]=nn;

returna;

)

)

9—9

计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、月、日通过键盘输入。

in^ortjava.util.Calendar;

insertjava.util.Scanner;

publicclassXiti9{

publicstaticvoidmain(String[]args){

Calendarcalendar=Calendar.getlnstance();

Scannerreader=newScanner(System.in);

System,out.printIn:”请输入年份”);

intyear=reader.nextlnt();

System,out.printIn请输入月份");

intmonth=reader.nextlnt();

System.out.printIn:"请输入日子”);

intday=redder.riexLInL();

calendar.set(year,month-1,day);

longtimel=calendar.getTimeInMillis();

System,out:.printin请输入年份”);

year=reader.nextlnt();

System,out.printin:"请输入月份”);

month=reader.nextlnt();

System.out.printIn请输入日子”);

day=reader.nextlnt();

calendar.set(year,month-1,day);

longtime2=calendar.getTimelnMillis();

long

sub=(time2>timel)?((time2-timel)/(1000*60*60*24)):((timel-time2)/(100

0*60*60*24));

SysLeui.ouL.p工inLln0隔“+sub+“天”);

}

)

10—10

10—11

参看例9—19,编写程序剔除一个字符串中的全部非数字字符,例如,将形如“abcl23you”

的非数字字符全部剔除得到字符串“123”.

importjava.util.regex.Matcher;

inportjava.util.regex.Pattern;

publicclassXitill{

publicstaticvoidmain(String[]args){

Patternp;

Matcherm;

Stringregex=n\\D{l,]u;

p=Ppile(regex);

Strings=nabcl23youn;

m=p.matcher(s);

System,out.printIn:"剔除以后的字符串“);

Stringresult=m.replaceAll('*");

System.out.printIn(result);

}

}

10—12

参看例9—21,使用Scanner类的实例解析,“数学87分,物理76分,英语96分”中的考试成

绩,并计算出总成绩以及平均分数,

importjava.util.Scanner;

publicclassXitil2{

publicstaticvoidmain(String[]args){

StringCount="数学87分,物理76分,英语96分”;

ScdinieibcaiHier=newScdntier(Count);

scanner.useDelimiter('*[^0123456789]+M);

intsum=0;

while(scanner.hasNext())

(

intcount=scanner.nextInt();

sum+=count;

)

doubleavg=sum/3;

System.out.printIn:”总分数为“+sum+”平均分"+avg);

}

}

习题10

10—1

如果准备按字节读取个文件的内容,^^^fflFileliipuLSLxeaiu^^FileReadeL^?

前者是以字节为单位顺序的读取源中的数据,后者是以字符为单位顺序的读取源中的数据。

10—2

File工nputStream流的read方法和FileReader流的read方法有何不同?

同上

10—3

BufferedReader流能直接指向一个文件么?

不能,通过向BufferedReader传递一个Reader子类的对象,来仓I建一个BufferedReader

对象

10—4

使用Object工nputStream和ObjectoutputStream类有哪些注意事项?

ObjectOutputStream的指向应当是一个输入流对象,因此当准备将一个对象写入到文件时,

首先用OutputStream的子类仓ij建一个输出流。同样Object工nputStream的指向应当是一个

输入流对象,因此当准备从文件读入一个对象到程序中的时候,首先用工nputStream的子类创

建一个文件输入流。

当使用对象流写入或者读入对象的时,要保证对象是序列化的。这是为了保证能把对象写入到文

件,并能把对象正确读回到程序的缘故。

10—5

怎样使用输入输出流克隆对象?

只需将该对象写入的对象的输出流的指向的目的地,然后将该目的地作为一个对象的输入流的

源,那么该对象输入流从源中读回的对象一定是源对象的一个克隆,即对象输入流通过对象的序

列化信息得到当前流的一个克隆。

10—6

使用RandomAccessFile流将一个文本文件倒置读出。

importjava.io.*;

publicclassXiti6{

publicstaticvoidmain(String[]args){

RandomAccessFileinAndOut=null;

intdata[]={1,2,3,4,5,6,7,8,9,0};

try

inAndOut=newRandomAccessFile(*'tom.datn,''rw',);

for(inti=0;i<data.length;i++)

(

inAndOut.writelnt(data[i]);

}

for(longi=data.length-1;i>=0;i——)

(

inAndOut.seek(i*4);

System.out.printfinAndOut.readlnt());

}

inAndOut.close();

)

catch(lOEx

温馨提示

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

评论

0/150

提交评论