java课后习题答案.docx

上传人:b****5 文档编号:7088617 上传时间:2023-01-17 格式:DOCX 页数:16 大小:20.30KB
下载 相关 举报
java课后习题答案.docx_第1页
第1页 / 共16页
java课后习题答案.docx_第2页
第2页 / 共16页
java课后习题答案.docx_第3页
第3页 / 共16页
java课后习题答案.docx_第4页
第4页 / 共16页
java课后习题答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

java课后习题答案.docx

《java课后习题答案.docx》由会员分享,可在线阅读,更多相关《java课后习题答案.docx(16页珍藏版)》请在冰豆网上搜索。

java课后习题答案.docx

java课后习题答案

习题1

1—1

Java语言得主要贡献者就是谁?

Java之父JamesGosling

习题2—4

publicclass表中得位置{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

chara='思';

charb='故';

charc='乡';

System、out、println((int)a+","+(int)b+","+(int)c);

}

}

习题3—4

publicclassXiti3_4{

publicstaticvoidmain(String[]args){

for(chara='А';a<='я';a++)

{

System、out、println(a);

}

}

}

习题3—5

publicclass阶乘{

publicstaticvoidmain(String[]args){

inti=Jiecheng(20);

System、out、println(i);

}

publicstaticintJiecheng(inti)

{

intresult=0;

if(i==1)

result=1;

else

result=i*Jiecheng(i-1);

returnresult;

}

}

习题3—7

publicclassxiti3_7{

publicstaticvoidmain(String[]args){

inti=1;

inta=0;

while(a<=9999)

{

a+=Jiecheng(i);

if(a<=9999){

i++;

}

}

System、out、println(i-1);

}

publicstaticintJiecheng(inti)

{

intresult=0;

if(i==1)

result=1;

else

result=i*Jiecheng(i-1);

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、Println得输出结果。

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、println(a+","+b+","+c);

}

}

}

}

System、out、println(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:

“abc”==“abc”得值就是false错误

D:

”abc”、equals(“abc”)得值就是true正确

9—2

请说出E类中得System、out、println得输出结果

love:

Game

9—3

请说出E类中得输出结果

15;

abc我们

9—4

13579

9—5

9javahello

9—6

publicclassXiti6{

publicstaticvoidmain(String[]args){

Stringstr1="hello";

Stringstr2="World";

Stringstr3=str1、toUpperCase();

System、out、println(str3);

str3=str2、toLowerCase();

System、out、println(str3);

str3=str1、concat(str2);

System、out、println(str3);

}

}

9—7

publicclassXiti7{

publicstaticvoidmain(String[]args){

Stringstr1="HelloWorld!

";

chara=str1、charAt(0);

System、out、println(a);

a=str1、charAt(str1、length()-1);

System、out、println(a);

}

}

9—8

通过键盘输入年份与月份。

程序输出相应得日历牌。

importjava、util、Calendar;

importjava、util、Scanner;

publicclassXiti8{

publicstaticvoidmain(String[]args){

Scannerreader=newScanner(System、in);

System、out、println("请输入年份与月份,输入一次按一次回车");

intx=reader、nextInt();

inty=reader、nextInt();

CalendaBeencb=newCalendaBeen();

cb、SetYear(x);

cb、SetMonth(y);

String[]a=cb、getCalendar();

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

for(charc:

str)

{

System、out、printf("%7c",c);

}

for(inti=0;i

{

if(i%7==0)

System、out、println();

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、getInstance();

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

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

intday=0;

if(month==1||month==3||month==7||month==8||month==10||month==12)

day=31;

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

day=30;

if(month==2){

if(year%4==0&&year%100!

=0||year%400==0)

day=29;

elseday=28;

}

for(inti=0;i

a[i]="";

for(inti=weekDay,n=1;i

{

a[i]=String、valueOf(n);

n++;

}

for(inti=weekDay+day;i

a[i]="";

returna;

}

}

9—9

计算某年、某月、某日与某年、某月、某日之间得天数间隔。

要求年、月、日通过键盘输入。

importjava、util、Calendar;

importjava、util、Scanner;

publicclassXiti9{

publicstaticvoidmain(String[]args){

Calendarcalendar=Calendar、getInstance();

Scannerreader=newScanner(System、in);

System、out、println("请输入年份");

intyear=reader、nextInt();

System、out、println("请输入月份");

intmonth=reader、nextInt();

System、out、println("请输入日子");

intday=reader、nextInt();

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

longtime1=calendar、getTimeInMillis();

System、out、println("请输入年份");

year=reader、nextInt();

System、out、println("请输入月份");

month=reader、nextInt();

System、out、println("请输入日子");

day=reader、nextInt();

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

longtime2=calendar、getTimeInMillis();

longsub=(time2>time1)?

((time2-time1)/(1000*60*60*24)):

((time1-time2)/(1000*60*60*24));

System、out、println("相隔"+sub+"天");

}

}

10—10

10—11

参瞧例9—19,编写程序剔除一个字符串中得全部非数字字符,例如,将形如“abc123you”得非数字字符全部剔除得到字符串“123”。

importjava、util、regex、Matcher;

importjava、util、regex、Pattern;

publicclassXiti11{

publicstaticvoidmain(String[]args){

Patternp;

Matcherm;

Stringregex="\\D{1,}";

p=Pattern、compile(regex);

Strings="abc123you";

m=p、matcher(s);

System、out、println("剔除以后得字符串");

Stringresult=m、replaceAll("");

System、out、println(result);

}

}

10—12

参瞧例9—21,使用Scanner类得实例解析,“数学87分,物理76分,英语96分”中得考试成绩,并计算出总成绩以及平均分数。

importjava、util、Scanner;

publicclassXiti12{

publicstaticvoidmain(String[]args){

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

Scannerscanner=newScanner(Count);

scanner、useDelimiter("[^0123456789]+");

intsum=0;

while(scanner、hasNext())

{

intcount=scanner、nextInt();

sum+=count;

}

doubleavg=sum/3;

System、out、println("总分数为"+sum+"平均分"+avg);

}

}

习题10

10—1

如果准备按字节读取一个文件得内容,应当使用流还就是流?

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

10—2

流得read方法与流得read方法有何不同?

同上

10—3

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

不能,通过向BufferedReader传递一个Reader子类得对象,来创建一个BufferedReader对象

10—4

使用ObjectInputStream与ObjectOutputStream类有哪些注意事项?

ObjectOutputStream得指向应当就是一个输入流对象,因此当准备将一个对象写入到文件时,首先用OutputStream得子类创建一个输出流。

同样ObjectInputStream得指向应当就是一个输入流对象,因此当准备从文件读入一个对象到程序中得时候,首先用InputStream得子类创建一个文件输入流。

当使用对象流写入或者读入对象得时,要保证对象就是序列化得。

这就是为了保证能把对象写入到文件,并能把对象正确读回到程序得缘故。

10—5

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

只需将该对象写入得对象得输出流得指向得目得地,然后将该目得地作为一个对象得输入流得源,那么该对象输入流从源中读回得对象一定就是源对象得一个克隆,即对象输入流通过对象得序列化信息得到当前流得一个克隆。

10—6

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

importjava、io、*;

publicclassXiti6{

publicstaticvoidmain(String[]args){

RandomAccess=null;

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

try

{

inAndOut=newRandomAccessFile("tom、dat","rw");

for(inti=0;i

{

inAndOut、writeInt(data[i]);

}

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

{

inAndOut、seek(i*4);

System、out、printf("\t%d",inAndOut、readInt());

}

inAndOut、close();

}

catch(IOExceptione)

{}

}

}

10—7

使用java得输入输出流将一个文本文件得内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。

10—8

10—9

解析一个文件中得价格数据,并计算平均价格,该文件得内容如下:

商品列表:

电视机,2567元/台

洗衣机,3562元/台

冰箱,6573元/台

importjava、io、*;

importjava、util、*;

publicclassXiti9{

publicstaticvoidmain(String[]args){

=newFile("cost、txt");

Scannersc=null;

doublesum=0;

inti=0;

try

{

sc=newScanner(file);

while(sc、hasNext())

{

try

{

intprice=sc、nextInt();

sum+=price;

i++;

System、out、println(price);

}

catch(InputMismatchExceptionexp)

{

Stringt=sc、next();

}

}

doubleavg=sum/i;

System、out、println(avg);

System、out、println("TotalCost"+sum+"dollar");

}

catch(Exceptionexp)

{

System、out、println(exp);

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1