Thinking in Java第四版Acess部分答案Word文档格式.docx
- 文档编号:17257298
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:12
- 大小:17.90KB
Thinking in Java第四版Acess部分答案Word文档格式.docx
《Thinking in Java第四版Acess部分答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《Thinking in Java第四版Acess部分答案Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
*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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Thinking in Java第四版Acess部分答案 Java 第四 Acess 部分 答案