JAVA编程思想课后习题答案资料.docx
《JAVA编程思想课后习题答案资料.docx》由会员分享,可在线阅读,更多相关《JAVA编程思想课后习题答案资料.docx(14页珍藏版)》请在冰豆网上搜索。
JAVA编程思想课后习题答案资料
Java编程思想(第四版)习题答案
第二章
练习1:
publicclassPrimitiveTest{
staticinti;
staticcharc;
publicstaticvoidmain(String[]args){
System.out.println("int="+i);
System.out.println("char="+c);
}
}
练习2:
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld!
");
}
}
练习3:
publicclassATNTest{
publicstaticvoidmain(String[]args){
classATypeName{
inti;
doubled;
booleanb;
voidshow(){
System.out.println(i);
System.out.println(d);
System.out.println(b);
}
}
ATypeNamea=newATypeName();
a.i=3;
a.d=2.71828;
a.b=false;
a.show();
}
}
练习4:
publicclassDataOnlyTest{
publicstaticvoidmain(String[]args){
classDataOnly{
inti;
doubled;
booleanb;
voidshow(){
System.out.println(i);
System.out.println(d);
System.out.println(b);
}
}
DataOnlydata=newDataOnly();
data.i=3;
data.d=2.71828;
data.b=false;
data.show();
}
}
练习5:
publicclassDOTest2{
publicstaticvoidmain(String[]args){
classDataOnly{
inti;
doubled;
booleanb;
voidshow(){
System.out.println(i);
System.out.println(d);
System.out.println(b);
}
}
DataOnlydata=newDataOnly();
data.i=234;
data.d=2.1234545;
data.b=true;
data.show();
}
}
练习6:
publicclassStorageTest{
publicstaticvoidmain(String[]args){
classStoreStuff{
intstorage(Strings){
returns.length()*2;
}
}
StoreStuffx=newStoreStuff();
System.out.println(x.storage("hi"));
}
}
练习7:
classStaticTest{
staticinti=47;
}
classIncrementable{
staticvoidincrement(){StaticTest.i++;}
}
publicclassITest{
publicstaticvoidmain(String[]args){
System.out.println("StaticTest.i="+StaticTest.i);
StaticTestst1=newStaticTest();
StaticTestst2=newStaticTest();
System.out.println("st1.i="+st1.i);
System.out.println("st2.i="+st2.i);
Incrementablesf=newIncrementable();
sf.increment();
System.out.println("Aftersf.increment()called:
");
System.out.println("st1.i="+st1.i);
System.out.println("st2.i="+st2.i);
Incrementable.increment();
System.out.println("AfterIncrementable.incrementcalled:
");
System.out.println("st1.i="+st1.i);
System.out.println("st2.i="+st2.i);
}
}
练习8:
classStaticTest{
staticinti=47;
}
classIncrementable{
staticvoidincrement(){StaticTest.i++;}
}
publicclassOneStaticTest{
publicstaticvoidmain(String[]args){
System.out.println("StaticTest.i="+StaticTest.i);
StaticTestst1=newStaticTest();
StaticTestst2=newStaticTest();
System.out.println("st1.i="+st1.i);
System.out.println("st2.i="+st2.i);
Incrementable.increment();
System.out.println("AfterIncrementable.increment()called:
");
System.out.println("st1.i="+st1.i);
System.out.println("st2.i="+st2.i);
Incrementable.increment();
System.out.println("AfterIncrementable.incrementcalled:
");
System.out.println("st1.i="+st1.i);
System.out.println("st2.i="+st2.i);
st1.i=3;
System.out.println("Afterst1.i=3,");
System.out.println("st1.i="+st1.i);
System.out.println("st2.i="+st2.i);
System.out.println("CreateanotherStaticTest,st3.");
StaticTestst3=newStaticTest();
System.out.println("st3.i="+st3.i);
}
}
练习9:
publicclassAutoboxTest{
publicstaticvoidmain(String[]args){
booleanb=false;
charc='x';
bytet=8;
shorts=16;
inti=32;
longl=64;
floatf=0.32f;
doubled=0.64;
BooleanB=b;
System.out.println("booleanb="+b);
System.out.println("BooleanB="+B);
CharacterC=c;
System.out.println("charc="+c);
System.out.println("CharacterC="+C);
ByteT=t;
System.out.println("bytet="+t);
System.out.println("ByteT="+T);
ShortS=s;
System.out.println("shorts="+s);
System.out.println("ShortS="+S);
IntegerI=i;
System.out.println("inti="+i);
System.out.println("IntegerI="+I);
LongL=l;
System.out.println("longl="+l);
System.out.println("LongL="+L);
FloatF=f;
System.out.println("floatf="+f);
System.out.println("FloatF="+F);
DoubleD=d;
System.out.println("doubled="+d);
System.out.println("DoubleD="+D);
}
}
练习10:
publicclassCommandArgTest{
publicstaticvoidmain(String[]args){
System.out.println("args[0]="+args[0]);
System.out.println("args[1]="+args[1]);
System.out.println("args[2]="+args[2]);
}
}
练习11:
publicclassRainbow{
publicstaticvoidmain(String[]args){
AllTheColorsOfTheRainbowatc=newAllTheColorsOfTheRainbow();
System.out.println("atc.anIntegerRepresentingColors="+atc.anIntegerRepresentingColors);
atc.changeColor(7);
atc.changeTheHueOfTheColor(77);
System.out.println("Aftercolorchange,atc.anIntegerRepresentingColors="+atc.anIntegerRepresentingColors);
System.out.println("atc.hue="+atc.hue);
}
}
classAllTheColorsOfTheRainbow{
intanIntegerRepresentingColors=0;
inthue=0;
voidchangeTheHueOfTheColor(intnewHue){
hue=newHue;
}
intchangeColor(intnewColor){
returnanIntegerRepresentingColors=newColor;
}
}
练习12:
publicclassDocTest{
/**Entrypoingtoclass&application.
*@paramargsarrayofstringarguments
*@throwsexceptionsNoexceptionsthrown
*/
publicstaticvoidmain(String[]args){
System.out.println("Hello,it's:
");
System.out.println(newDate());
}
}
练习13-1:
publicclassDocumentation1{
/**Afieldcomment*/
publicinti;
/**Amethodcomment*/
publicvoidf(){}
}
2:
publicclassDocumentation2{
Dated=newDate();
voidshowDate(){
System.out.println("Date="+d);
}
}
3:
publicclassDocumentation3{
publicstaticvoidmain(String[]args){
Dated=newDate();
System.out.println("d="+d);
}
}
练习14:
publicclassDocumentation4{
publicinti=2;
privateintj=3;
publicstaticvoidmain(String[]args){
Dated=newDate();
System.out.println("d="+d);
}
}
练习15:
publicclassHelloDocTest{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld!
");
}
}
练习16:
classTree{
intheight;
Tree(){
System.out.println("Plantingaseedling");
height=0;
}
Tree(intinitialHeight){
height=initialHeight;
System.out.println("Creatingnewtreethatis"+height+"feettall");
}
voidinfo(){
System.out.println("Treeis"+height+"feettall");
}
voidinfo(Strings){
System.out.println(s+":
Treeis"+height+"feettall");
}
}
publicclassOverloading{
publicstaticvoidmain(String[]args){
for(inti=0;i<5;i++){
Treet=newTree(i);
t.info();
t.info("overloadingmethod");
}
//Overloadedconstructor:
newTree();
}
}
第三章
练习1:
publicclassPrintTest{
publicstaticvoidmain(String[]args){
print("Hello,fromshortform.");
P.rintln("Hellofromgreggordonform.");
System.out.println("Hellofromlongform.");
}
}
练习2:
classTube{
floatlevel;
}
publicclassAssign{
publicstaticvoidmain(String[]args){
Tubet1=newTube();
Tubet2=newTube();
t1.level=0.9f;
t2.level=0.47f;
P.rintln("1:
t1.level:
"+t1.level+",t2.level:
"+t2.level);
t1=t2;
P.rintln("2:
t1.level:
"+t1.level+",t2.level:
"+t2.level);
t1.level=0.27f;
P.rintln("3:
t1.level:
"+t1.level+",t2.level:
"+t2.level);
}
}
练习3:
classBox{
floata;
}
publicclassPassObject2{
staticvoidf(Boxy){
y.a=2.71828f;
}
publicstaticvoidmain(String[]args){
Boxx=newBox();
x.a=3.1416f;
print("1:
x.a="+x.a);
f(x);
print("2:
x.a="+x.a);
}
}
练习4:
classVelocityCalculator{
staticfloatvelocity(floatd,floatt){
if(t==0)return0f;
elsereturnd/t;
}
}
publicclassVelocityTester{
publicstaticvoidmain(String[]args){
floatd=565.3f;
floatt=3.6f;
System.out.println("Distance:
"+d);
System.out.println("Time:
"+t);
floatv=VelocityCalculator.velocity(d,t);
System.out.println("Velocity:
"+v);
}
}
练习5:
classDog{
Stringname;
Stringsays;
voidsetName(Stringn){
name=n;
}
voidsetSays(Strings){
says=s;
}
voidshowName(){
P.rintln(name);
}
voidspeak(){
P.rintln(says);
}
}
publicclassDogTest{
publicstaticvoidmain(String[]args){
Dogspot=newDog();
spot.setName("Spot");
spot.setSays("Ruff!
");
Dogscruffy=newDog();
scruffy.setName("Scruffy");
scruffy.setSays("Wurf!
");
spot.showName();
spot.speak();
scruffy.showName();
scruffy.speak();
}
}
练习6:
classDog{
Stringname;
Stringsays;
voidsetName(Stringn){
name=n;
}
voidsetSays(Strings){
says=s;
}
voidshowName(){
P.rintln(name);
}
voidspeak(){
P.rintln(says);
}
}
publicclassDogCompare{
publicstaticvoidmain(String[]args){
Dogspot=newDog();
spot.setName("Spot");
spot.setSays("Ruff!
");
Dogscruffy=newDog();
scruffy.setName("Scruffy");
scruffy.setSays("Wurf!
");
spot.showName();
spot.speak();
scruffy.showName();
scruffy.speak();
Dogbutch=newDog();
butch.setName("Butch");
butch.setSays("Hello!
");
butch.showName();
butch.speak();
P.rintln("Comparison:
");
P.rintln("spot==butch:
"+(spot==butch));
P.rintln("spot.equals(butch):
"+spot.equals(butch));
P.rintln("butch.equals(spot):
"+butch.equals(spot));
P.rintln("Nowassign:
spot=butch");
spot=butch;
P.rintln("Compareagain:
");
P.rintln("spot==butch:
"+(spot==