Thinking in Java第四版Acess部分答案Word文档格式.docx

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

Thinking in Java第四版Acess部分答案Word文档格式.docx

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

Thinking in Java第四版Acess部分答案Word文档格式.docx

*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.showd();

//privateaccess,compilercan'

ttouch

}

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

//TIJ4ChapterAccess,Exercise2,page217

/*Takethecodefragmentsinthissectionandturnthemintoaprogramand

*verifythatcollisionsdooccur.

importnet.mindview.simple.*;

importjava.util.*;

publicclassCollision{

//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().*/

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);

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

}

(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{

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(){

Creatingapackagedclass"

*//Then,inanotherdirectrorycreatethefilebelowandexplainwhycompiler

*generateserror.WouldmakingForeignclasspartofaccess.localchangeanything?

//access/foreign/Foreign.java

packageaccess.foreign;

importaccess.local.*;

publicclassForeign{

PackagedClasspc=newPackagedClass();

/*Compilererrorbecause:

PackagedClassinnotpublic,sonoaccessoutsideof

*package.MovingForeigntolocalwouldallowpackageaccesstoPackagedClass.

(NO.7)//MakeWidget.java

//TIJ4ChapterAccess,Exercise7,page230

/*CreatethelibraryaccordingtothecodefragmentsdescribingaccessandWidget.

*CreateaWidgetinaclassthatisnotpartoftheaccesspackage.

/*inaccesspackage:

*//access/Widget.java

*publicclassWidget{

*publicWidget(){System.out.println("

Widget()"

importaccess.*;

publicclassMakeWidget{

Widgetw=newWidget();

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

//TIJ4ChapterAccess,Exercise6,page228

/*Createaclasswithprotecteddata.Createasecondclassinthesamefilewith

*amethodthatmanipulatestheprotecteddatainthefirstclass.

classSomeData{

protectedinta=13;

classDataChanger{

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

publicclassProtectedData{

SomeDatax=newSomeData();

System.out.println(x.a);

DataChanger.change(x,99);

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

//TIJ4ChapterAccess,Exercise1,page217

//Createaclassinapackage.Createaninstanceofyourclassoutsideofthatpackage.

/*Inanotherdirectory:

*//access/mypackage/MyPackagedClass.java

*packageaccess.mypackage;

*publicclassMyPackagedClass{

*publicMyPackagedClass(){System.out.println("

MyPackagedClass()"

*}

publicclassUnpackagedMyClass{

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

//arrays/ArrayOfGenerics10.java

//TIJ4ChapterArrays,Exercise10,page762

//ModifyArrayOfGeneric.javatousecontainersinsteadofarrays.

//Showthatyoucaneliminatethecompile-timewarnings.

publicclassArrayOfGenerics10{

@SuppressWarnings("

unchecked"

List<

List<

String>

>

lls=newArrayList<

();

List>

l=newArrayList<

//lls=(List<

)l;

//error:

inconvertibletypes

lls.add(newArrayList<

());

Object>

lo=newArrayList<

//lo=lls;

incompatibletypes

//Compile-timewarningeliminated:

BerylliumSphere>

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.*;

importstaticnet.mindview.util.Print.*;

classBerylliumSphereGeneratorimplementsGenerator<

publicBerylliumSpherenext(){

returnnewBerylliumSphere();

}

publicclassContainerComparison15{

BerylliumSphere[]spheres=newBerylliumSphere[5];

BerylliumSphereGeneratorbsg=newBerylliumSphereGenerator();

Generated.array(spheres,bsg);

print(Arrays.toString(spheres));

print(spheres[4]);

sphereList=

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.

classA{publicStringtoString(){return"

AObject"

;

}}

publicclassEx1{

//MethodthattakesBerylliumSphere[]asargument

//andprintstheargumentasarrayelementsandasListorString:

publicstaticvoidtest(BerylliumSphere[]a){

print(Arrays.asList(a));

//Genericversion:

publicstatic<

T>

voidtest(T[]t){

print(Arrays.asList(t));

//intversion:

publicstaticvoidte

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

当前位置:首页 > 幼儿教育 > 家庭教育

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

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