java语言程序设计基础篇第十版第十三章练习答案.docx
- 文档编号:12767333
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:53
- 大小:24.04KB
java语言程序设计基础篇第十版第十三章练习答案.docx
《java语言程序设计基础篇第十版第十三章练习答案.docx》由会员分享,可在线阅读,更多相关《java语言程序设计基础篇第十版第十三章练习答案.docx(53页珍藏版)》请在冰豆网上搜索。
java语言程序设计基础篇第十版第十三章练习答案
01
publicclassExercise13_01{
publicstaticvoidmain(String[]args){
TriangleNewtriangle=newTriangleNew(1,1、5,1);
triangle、setColor("yellow");
triangle、setFilled(true);
System、out、println(triangle);
System、out、println("Theareais"+triangle、getArea());
System、out、println("Theperimeteris"
+triangle、getPerimeter());
System、out、println(triangle);
}
}
classTriangleNewextendsGeometricObject{
privatedoubleside1=1、0,side2=1、0,side3=1、0;
/**Constructor*/
publicTriangleNew(){
}
/**Constructor*/
publicTriangleNew(doubleside1,doubleside2,doubleside3){
this、side1=side1;
this、side2=side2;
this、side3=side3;
}
/**ImplementtheabstractmethodfindAreainGeometricObject*/
publicdoublegetArea(){
doubles=(side1+side2+side3)/2;
returnMath、sqrt(s*(s-side1)*(s-side2)*(s-side3));
}
/**ImplementtheabstractmethodfindCircumferencein
*GeometricObject
**/
publicdoublegetPerimeter(){
returnside1+side2+side3;
}
@Override
publicStringtoString(){
//Implementittoreturnthethreesides
return"TriangleNew:
side1="+side1+"side2="+side2+
"side3="+side3;
}
}
02
importjava、util、ArrayList;
publicclassExercise13_02{
publicstaticvoidmain(String[]args){
ArrayList
list、add(14);
list、add(24);
list、add(4);
list、add(42);
list、add(5);
shuffle(list);
for(inti=0;i System、out、print(list、get(i)+""); } publicstaticvoidshuffle(ArrayList for(inti=0;i intindex=(int)(Math、random()*list、size()); Numbertemp=list、get(i); list、set(i,list、get(index)); list、set(index,temp); } } } 03 importjava、util、ArrayList; publicclassExercise13_03{ publicstaticvoidmain(String[]args){ ArrayList list、add(14); list、add(24); list、add(4); list、add(42); list、add(5); sort(list); for(inti=0;i System、out、print(list、get(i)+""); } publicstaticvoidsort(ArrayList for(inti=0;i //Findtheminimuminthelist[i、、list、length-1] NumbercurrentMin=list、get(i); intcurrentMinIndex=i; for(intj=i+1;j if(currentMin、doubleValue()>list、get(j)、doubleValue()){ currentMin=list、get(j); currentMinIndex=j; } } //S(i)withlist、get(currentMinIndex)ifnecessary; if(currentMinIndex! =i){ list、set(currentMinIndex,list、get(i)); list、set(i,currentMin); } } } } 04 importjava、util、*; publicclassExercise13_04{ staticMyCalendarcalendar=newMyCalendar(); publicstaticvoidmain(String[]args){ intmonth=calendar、get(MyCalendar、MONTH)+1; intyear=calendar、get(MyCalendar、YEAR); if(args、length>2) System、out、println("UsagejavaExercise13_04monthyear"); elseif(args、length==2){ //useuser-definedmonthandyear year=Integer、parseInt(args[1]); month=Integer、parseInt(args[0]); calendar、set(Calendar、YEAR,year); calendar、set(Calendar、MONTH,month-1); } elseif(args、length==1){ //useuser-definedmonthforthecurrentyear month=Integer、parseInt(args[0]); calendar、set(Calendar、MONTH,month-1); } //setdatetothefirstdayinamonth calendar、set(Calendar、DATE,1); //printcalendarforthemonth printMonth(year,month); } staticvoidprintMonth(intyear,intmonth){ //getstartdayoftheweekforthefirstdateinthemonth intstartDay=getStartDay(); //getnumberofdaysinthemonth intnumOfDaysInMonth=calendar、daysInMonth(); //printheadings printMonthTitle(year,month); //printbody printMonthBody(startDay,numOfDaysInMonth); } staticintgetStartDay(){ returncalendar、get(Calendar、DAY_OF_WEEK); } staticvoidprintMonthBody(intstartDay,intnumOfDaysInMonth){ //printpaddingspacebeforethefirstdayofthemonth inti=0; for(i=0;i System、out、print(""); for(i=1;i<=numOfDaysInMonth;i++){ if(i<10) System、out、print(""+i); else System、out、print(""+i); if((i+startDay-1)%7==0) System、out、println(); } System、out、println(""); } staticvoidprintMonthTitle(intyear,intmonth){ System、out、println(""+calendar、getMonthName()+","+year); System、out、println("-----------------------------"); System、out、println("SunMonTueWedThuFriSat"); } } 05 publicclassExercise13_05{ //Mainmethod publicstaticvoidmain(String[]args){ //Createtwocomparablecircles Circle1circle1=newCircle1(5); Circle1circle2=newCircle1(4); //Displaythemaxcircle Circle1circle=(Circle1)GeometricObject1、max(circle1,circle2); System、out、println("Themaxcircle'sradiusis"+circle、getRadius()); System、out、println(circle); } } abstractclassGeometricObject1implementsComparable protectedStringcolor; protecteddoubleweight; //Defaultconstruct protectedGeometricObject1(){ color="white"; weight=1、0; } //Constructageometricobject protectedGeometricObject1(Stringcolor,doubleweight){ this、color=color; this、weight=weight; } //Gettermethodforcolor publicStringgetColor(){ returncolor; } //Settermethodforcolor publicvoidsetColor(Stringcolor){ this、color=color; } //Gettermethodforweight publicdoublegetWeight(){ returnweight; } //Settermethodforweight publicvoidsetWeight(doubleweight){ this、weight=weight; } //Abstractmethod publicabstractdoublegetArea(); //Abstractmethod publicabstractdoublegetPerimeter(); publicintcompareTo(GeometricObject1o){ if(getArea() return-1; elseif(getArea()==o、getArea()) return0; else return1; } publicstaticGeometricObject1max(GeometricObject1o1,GeometricObject1o2){ if(o1、compareTo(o2)>0) returno1; else returno2; } } //Circle、java: ThecircleclassthatextendsGeometricObject classCircle1extendsGeometricObject1{ protecteddoubleradius; //Defaultconstructor publicCircle1(){ this(1、0,"white",1、0); } //Constructcirclewithspecifiedradius publicCircle1(doubleradius){ super("white",1、0); this、radius=radius; } //Constructacirclewithspecifiedradius,weight,andcolor publicCircle1(doubleradius,Stringcolor,doubleweight){ super(color,weight); this、radius=radius; } //Gettermethodforradius publicdoublegetRadius(){ returnradius; } //Settermethodforradius publicvoidsetRadius(doubleradius){ this、radius=radius; } //ImplementthefindAreamethoddefinedinGeometricObject publicdoublegetArea(){ returnradius*radius*Math、PI; } //ImplementthefindPerimetermethoddefinedinGeometricObject publicdoublegetPerimeter(){ return2*radius*Math、PI; } //Overridetheequals()methoddefinedintheObjectclass publicbooleanequals(Circle1circle){ returnthis、radius==circle、getRadius(); } @Override publicStringtoString(){ return"[Circle]radius="+radius; } @Override publicintcompareTo(GeometricObject1o){ if(getRadius()>((Circle1)o)、getRadius()) return1; elseif(getRadius()<((Circle1)o)、getRadius()) return-1; else return0; } } 06 publicclassExercise13_06{ //Mainmethod publicstaticvoidmain(String[]args){ //Createtwocomarablerectangles ComparableCirclecircle1=newComparableCircle(5); ComparableCirclecircle2=newComparableCircle(15); //Displaythemaxrect ComparableCirclecircle3=(ComparableCircle)Max、max(circle1,circle2); System、out、println("Themaxcircle'sradiusis"+circle3、getRadius()); System、out、println(circle3); } } classComparableCircleextendsCircleimplementsComparable /**ConstructaComparableRectanglewithspecifiedproperties*/ publicComparableCircle(doubleradius){ super(radius); } @Override publicintcompareTo(ComparableCircleo){ if(getRadius()>o、getRadius()) return1; elseif(getRadius() return-1; else return0; } } //Max、java: Findamaximumobject classMax{ /**Returnthemaximumoftwoobjects*/ publicstaticComparableCirclemax (ComparableCircleo1,ComparableCircleo2){ if(o1、compareTo(o2)>0) returno1; else returno2; } } 07 publicclassExercise13_07{ publicstaticvoidmain(String[]args){ GeometricObject[]objects={newSquare (2),newCircle(5),newSquare(5),newRectangle(3,4),newSquare(4、5)}; for(inti=0;i System、out、println("Areais"+objects[i]、getArea()); if(objects[i]instanceofColorable) ((Colorable)objects[i])、howToColor(); } } } interfaceColorable{ voidhowToColor(); } classSquareextendsGeometricObjectimplementsColorable{ privatedoubleside; publicSquare(doubleside){ this、side=side; } @Override publicvoidhowToColor(){ System、out、println("Colorallfoursides"); } @Override publicdoublegetArea(){ returnside*side; } @Override publicdoublegetPerimeter(){ return4*side; } } 08 importjava、util、ArrayList; publicclassExercise13_08{ publicstaticvoidmain(String[]args){ MyStack1stack=newMyStack1(); stack、push("S1"); stack、push("S2"); stack、push("S"); MyStack1stack2=(MyStack1)(stack、clone()); stack2、push("S1"); stack2、push("S2"); stack2、push("S"); System、out、println(stack、getSize()); System、out、println(stack2、getSize()); } } classMyStack1implementsCloneable{ privateArrayList publ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 语言程序设计 基础 第十 第十三 练习 答案