Thinking in Java第四版Acess部分答案.docx

上传人:b****6 文档编号:4333366 上传时间:2022-11-29 格式:DOCX 页数:12 大小:17.90KB
下载 相关 举报
Thinking in Java第四版Acess部分答案.docx_第1页
第1页 / 共12页
Thinking in Java第四版Acess部分答案.docx_第2页
第2页 / 共12页
Thinking in Java第四版Acess部分答案.docx_第3页
第3页 / 共12页
Thinking in Java第四版Acess部分答案.docx_第4页
第4页 / 共12页
Thinking in Java第四版Acess部分答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Thinking in Java第四版Acess部分答案.docx

《Thinking in Java第四版Acess部分答案.docx》由会员分享,可在线阅读,更多相关《Thinking in Java第四版Acess部分答案.docx(12页珍藏版)》请在冰豆网上搜索。

Thinking in Java第四版Acess部分答案.docx

ThinkinginJava第四版Acess部分答案

ThinkinginJava4thEdition习题答案

1.Access部分

(NO.1)//access/AccessTest.java

//TIJ4ChapterAccess,Exercise5,page227

/*Createaclasswithpublic,private,protectedandpackage-accessfieldsand

*methodmembers.Createanobjectofthisclassandseewhatkindofcompiler

*messagesyougetwhenyoutrytoaccessalltheclassmembers.Beawarethat

*classesinthesamedirectoryarepartofthe"default"package.

*/

/*insamedirectory:

*packageaccess;

*

*publicclassFourWays{

*inta=0;

*publicintb=1;

*protectedintc=2;

*privateintd=3;

*FourWays(){System.out.println("FourWays()constructor");}

*voidshowa(){System.out.println(a);}

*publicvoidshowb(){System.out.println(b);}

*protectedvoidshowc(){System.out.println(c);}

*privatevoidshowd(){System.out.println(d);}

*}

*/

packageaccess;//runcommandjavaaccess.AccessTest

publicclassAccessTest{

publicstaticvoidmain(String[]args){

FourWaysfw=newFourWays();

fw.showa();

fw.showb();

fw.showc();

fw.a=10;

fw.b=20;

fw.c=30;

fw.showa();

fw.showb();

fw.showc();

//!

fw.showd();//privateaccess,compilercan'ttouch

}

}

(NO.2)//access/Collision.java

//TIJ4ChapterAccess,Exercise2,page217

/*Takethecodefragmentsinthissectionandturnthemintoaprogramand

*verifythatcollisionsdooccur.

*/

importnet.mindview.simple.*;

importjava.util.*;

publicclassCollision{

publicstaticvoidmain(String[]args){

//Vectorv=newVector();//ambiquouscollision

net.mindview.simple.Vectorv1=newnet.mindview.simple.Vector();

java.util.Vectorv2=newjava.util.Vector();

}

}

(NO.3)//access/ConnectionManager.java

//TIJ4ChapterAccess,Exercise8,page233

/*FollowingtheformoftheexampleLunch.java,createaclasscalled

*ConnectionManagerthatmanagesafixedarrayofConnectionobjects.Theclient

*programmermustnotbeabletoexplicitlycreateConnectionobjects,butcan

*onlygetthemviaastaticmethodinConnectionManager.WhenConnectionManager

*runsoutofobjects,itreturnsanullreference.Testtheclassesinmain().*/

packageaccess;

classConnection{

privatestaticintcount=0;

privateinti=0;

privateConnection(){System.out.println("Connection()");}

//Allowcreationviastaticmethod:

staticConnectionmakeConnection(){

count++;

returnnewConnection();

}

publicstaticinthowMany(){returncount;}

publicStringtoString(){

return("Connection"+count);

}

}

publicclassConnectionManager{

staticinthowManyLeft=3;

staticConnection[]ca=newConnection[3];

{

for(Connectionx:

ca)

x=Connection.makeConnection();

}

publicstaticConnectiongetConnection(){

if(howManyLeft>0)

returnca[--howManyLeft];

else{

System.out.println("Nomoreconnections");

returnnull;

}

}

publicstaticvoidmain(String[]args){

ConnectionManagercm=newConnectionManager();

System.out.println(cm.howManyLeft);

cm.getConnection();

System.out.println(howManyLeft);

cm.getConnection();

System.out.println(howManyLeft);

cm.getConnection();

System.out.println(cm.getConnection());

System.out.println(howManyLeft);

}

}

(NO.4)//access/cookie2/CookieMonster.java

//TIJ4ChapterAccess,Exercise4,page227

//Showthatprotectedmethodshavepackageaccessbutarenotpublic.

/*IndirectoryCookie2:

*//access/cookie2/Cookie.java

*//Createsalibrary

*packageaccess.cookie2;

*

*publicclassCookie{

*publicCookie(){

*System.out.println("Cookiecontstructor");

*}

*protectedvoidbite(){System.out.println("bite");}

*}

*/

packageaccess.cookie2;

publicclassCookieMonster{

publicstaticvoidmain(String[]args){

Cookiex=newCookie();

x.bite();//packageaccesstoprotectedmethod

}

}

(NO.5)//access/debug/Debug.java

//TIJ4ChapterAccess,Exercise3,page220

/*Createtwopackages:

debuganddebugoff,containinganidenticalclasswitha

*debug()method.ThefirstversiondisplaysitsStringargumenttotheconsole,

*theseconddoesnothing.Useastaticimportlinetoimporttheclassintoatest

*program,anddemonstratetheconditionalcompilationeffect.

*/

/*Indirectoryaccess/debugoff:

*//access/debugoff/Debug.java

*packageaccess.debugoff;

*

*publicclassDebug{

*publicstaticvoiddebug(Strings){}

*}

*/

packageaccess.debug;

publicclassDebug{

publicstaticvoiddebug(Strings){

System.out.println(s);

}

}

 

(NO.6)//TIJ4chapterAccess,Exercise9,page233

/*Createinaccess/localdirectoryinyourCLASSPATH:

*//access/local/PackagedClass.java

*packageaccess.local;

*

*classPackagedClass{

*publicPackagedClass(){

*System.out.println("Creatingapackagedclass");

*}

*}

*//Then,inanotherdirectrorycreatethefilebelowandexplainwhycompiler

*generateserror.WouldmakingForeignclasspartofaccess.localchangeanything?

*/

//access/foreign/Foreign.java

packageaccess.foreign;

importaccess.local.*;

publicclassForeign{

publicstaticvoidmain(String[]args){

PackagedClasspc=newPackagedClass();

}

}

/*Compilererrorbecause:

PackagedClassinnotpublic,sonoaccessoutsideof

*package.MovingForeigntolocalwouldallowpackageaccesstoPackagedClass.

*/

 

(NO.7)//MakeWidget.java

//TIJ4ChapterAccess,Exercise7,page230

/*CreatethelibraryaccordingtothecodefragmentsdescribingaccessandWidget.

*CreateaWidgetinaclassthatisnotpartoftheaccesspackage.

*/

/*inaccesspackage:

*//access/Widget.java

*packageaccess;

*

*publicclassWidget{

*publicWidget(){System.out.println("Widget()");}

*}

*/

importaccess.*;

publicclassMakeWidget{

publicstaticvoidmain(String[]args){

Widgetw=newWidget();

}

}

(NO.8)//access/ProtectedData.java

//TIJ4ChapterAccess,Exercise6,page228

/*Createaclasswithprotecteddata.Createasecondclassinthesamefilewith

*amethodthatmanipulatestheprotecteddatainthefirstclass.

*/

classSomeData{

protectedinta=13;

}

classDataChanger{

staticvoidchange(SomeDatasd,inti){sd.a=i;}

}

publicclassProtectedData{

publicstaticvoidmain(String[]args){

SomeDatax=newSomeData();

System.out.println(x.a);

DataChanger.change(x,99);

System.out.println(x.a);

}

}

(NO.9)//access/UnpackagedMyClass.java

//TIJ4ChapterAccess,Exercise1,page217

//Createaclassinapackage.Createaninstanceofyourclassoutsideofthatpackage.

/*Inanotherdirectory:

*//access/mypackage/MyPackagedClass.java

*

*packageaccess.mypackage;

*

*publicclassMyPackagedClass{

*publicMyPackagedClass(){System.out.println("MyPackagedClass()");}

*}

*/

publicclassUnpackagedMyClass{

publicstaticvoidmain(String[]args){

access.mypackage.MyPackagedClassm=newaccess.mypackage.MyPackagedClass();

}

}

 

//arrays/ArrayOfGenerics10.java

//TIJ4ChapterArrays,Exercise10,page762

//ModifyArrayOfGeneric.javatousecontainersinsteadofarrays.

//Showthatyoucaneliminatethecompile-timewarnings.

importjava.util.*;

publicclassArrayOfGenerics10{

@SuppressWarnings("unchecked")

publicstaticvoidmain(String[]args){

List>lls=newArrayList>();

Listl=newArrayList();

//lls=(List>)l;//error:

inconvertibletypes

lls.add(newArrayList());

Listlo=newArrayList();

//lo=lls;//error:

incompatibletypes

//Compile-timewarningeliminated:

List>llb=

newArrayList>();

for(inti=0;i<10;i++){

llb.add(newArrayList());

for(intj=0;j<2;j++)

llb.get(i).add(newBerylliumSphere());

}

System.out.println(llb);

}

}

//arrays/ContainerComparison15.java

//TIJ4ChapterArrays,Exercise15,page775

//ModifyContainerComparison.javabycreatingaGeneratorfor

//BerylliumSphere,andchangemain()tousethatGenerator

//withGenerated.array().

importnet.mindview.util.*;

importjava.util.*;

importstaticnet.mindview.util.Print.*;

classBerylliumSphereGeneratorimplementsGenerator{

publicBerylliumSpherenext(){

returnnewBerylliumSphere();

}

}

publicclassContainerComparison15{

publicstaticvoidmain(String[]args){

BerylliumSphere[]spheres=newBerylliumSphere[5];

BerylliumSphereGeneratorbsg=newBerylliumSphereGenerator();

Generated.array(spheres,bsg);

print(Arrays.toString(spheres));

print(spheres[4]);

ListsphereList=

newArrayList();

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

sphereList.add(bsg.next());

print(sphereList);

print(sphereList.get(4));

}

}

//arrays/Ex1.java

//TIJ4ChapterArrays,Exercise1,page752

/*CreateamethodthattakesanarrayofBerylliumSphereasanargument.

*Callthemethod,creatingtheargumentdynamically.Demonstratethat

*ordinaryaggregatearrayintitializationdoesn'tworkinthiscase.

*Discovertheonlysituationswhereordinaryaggregatearrayinitialization

*works,andwheredynamicaggregatearrayinitializationisredundant.

*/

importjava.util.*;

importstaticnet.mindview.util.Print.*;

classA{publicStringtoString(){return"AObject";}}

publicclassEx1{

//MethodthattakesBerylliumSphere[]asargument

//andprintstheargumentasarrayelementsandasListorString:

publicstaticvoidtest(BerylliumSphere[]a){

print(Arrays.asList(a));

}

//Genericversion:

publicstaticvoidtest(T[]t){

print(Arrays.asList(t));

}

//intversion:

publicstaticvoidte

展开阅读全文
相关搜索

当前位置:首页 > 高中教育 > 初中教育

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

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