• 447.64 KB
  • 2022-04-22 11:23:28 发布

java面向对象程序设计 (耿祥义 张跃平 著) 清华大学出版社 课后答案

  • 46页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'课后答案网,用心为你服务!大学答案---中学答案---考研答案---考试答案最全最多的课后习题参考答案,尽在课后答案网(www.khdaw.com)!Khdaw团队一直秉承用心为大家服务的宗旨,以关注学生的学习生活为出发点,旨在为广大学生朋友的自主学习提供一个分享和交流的平台。爱校园(www.aixiaoyuan.com)课后答案网(www.khdaw.com)淘答案(www.taodaan.com) 课后答案网www.khdaw.comJava面向对象程序设计清华大学出版社(编著(编著耿祥义耿祥义耿祥义张跃平)张跃平)khdaw.com习题解答建议使用文档结构图(选择选择WordWordWord菜单菜单菜单→→→视图视图视图→→→文档结构图文档结构图)khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题11.JamesGosling2.(1)使用一个文本编辑器编写源文件。(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。应用程序中可以没有khdaw.compublic类,若有的话至多可以有一个public类。4.系统环境pathDjdkbin;系统环境classpathDjdkjrelibrt.jar;.;5.B6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。7.D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class和Xiti8.class(3)javaXiti8(4)执行javaSpeak的错误提示Exceptioninthread"main"java.lang.NoSuchMethodError:main执行javaxiti8得到的错误提示Exceptioninthread"main"java.lang.NoClassDefFoundError:xiti8(wrongname:Xiti8)执行javaXiti8.class得到的错误提示Exceptioninthread"main"java.lang.NoClassDefFoundError:Xiti8/class执行javaXiti8得到的输出结果I"mgladtomeetyou9.属于操作题,解答略。khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题21.D2.【代码1】【代码2】错误//【代码3】更正为floatz=6.89F;3.float型常量后面必须要有后缀“f”或“F”。对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。4.publicclassXiti4{publicstaticvoidmain(Stringargs[]){charch1="你",ch2="我",ch3="他";System.out.println("""+ch1+""的位置:"+(int)ch1);khdaw.comSystem.out.println("""+ch2+""的位置:"+(int)ch2);System.out.println("""+ch3+""的位置:"+(int)ch3);}}5.数组名字.length6.数组名字.length7.【代码1】A,65【代码2】-127【代码3】123456.783,123456.783128.【代码1】false【代码2】true【代码3】false【代码4】3【代码5】4.4【代码6】8.8khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题31.输出110if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。2.你好好酷!!3.publicclassXiti3_3{publicstaticvoidmain(Stringargs[]){intstartPosition=0,endPosition=0;charcStart="а",cEnd="я";khdaw.comstartPosition=(int)cStart;//cStart做int型转换据运算,并将结果赋值给startPositionendPosition=(int)cEnd;//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("俄文字母表:");for(inti=startPosition;i<=endPosition;i++){charc="";c=(char)i;//i做char型转换运算,并将结果赋值给cSystem.out.print(""+c);if((i-startPosition+1)%10==0)System.out.println("");}}}4.publicclassXiti4{publicstaticvoidmain(Stringargs[]){doublesum=0,a=1;inti=1;while(i<=20){sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}5.classXiti5{publicstaticvoidmain(Stringargs[]){inti,j;for(j=2;j<=100;j++){for(i=2;i<=j/2;i++){if(j%i==0)break;}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.comif(i>j/2){System.out.print(""+j);}}}}6.classXiti6{publicstaticvoidmain(Stringargs[]){doublesum=0,a=1,i=1;while(i<=20){sum=sum+a;i++;a=(1.0/i)*a;}khdaw.comSystem.out.println("使用while循环计算的sum="+sum);for(sum=0,i=1,a=1;i<=20;i++){a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的sum="+sum);}}7.publicclassXiti7{publicstaticvoidmain(Stringargs[]){intsum=0,i,j;for(i=1;i<=1000;i++){for(j=1,sum=0;jn){t=m;m=n;n=t;}for(inti=1;i<=m;i++){if(m%i==0&&n%i==0){gy=i;}}gb=m*n/gy;System.out.println(m+","+n+"的最大公约数为"+gy);System.out.println(m+","+n+"的最小公倍数为"+gb);}}9.publicclassXiti9{publicstaticvoidmain(Stringargs[]){intn=1;longsum=0,t=1;t=n*t;while(true){sum=sum+t;if(sum>9999)break;n++;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.comt=n*t;}System.out.println("满足条件的最大整数:"+(n-1));}}//1至7的阶乘和是sum=5913.0//1至8的阶乘和是sum=46233.0khdaw.comkhdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题41.用该类创建对象时。2.所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。3.可以。不可以。4.不可以。5.成员变量又分为实例变量和类变量,用static修饰的变量是类变量。那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个khdaw.com类变量。也就是说对象共享类变量。6.C,D7.【代码1】,【代码4】8.sum=-1009.2710.**20##100khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题51.如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的khdaw.com类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。子类通过方法的重写可以隐藏继承的方法。2.不可以。3.abstract类。4.假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。5.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。6.A,C,D7.15.08.08.98.0129.classA{publicfinalvoidf(){charcStart="a",cEnd="z";for(charc=cStart;c<=cEnd;c++){System.out.print(""+c);}}}classBextendsA{publicvoidg(){charcStart="α",cEnd="ω";for(charc=cStart;c<=cEnd;c++){System.out.print(""+c);}}}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.compublicclassXiti9{publicstaticvoidmain(Stringargs[]){Bb=newB();b.f();b.g();}}10.classA{publicintf(inta,intb){if(b>Advertisement+show(Advertisementadver):void+showAdvertisement():void+getCorpName():StringPhilipsCorpLenovoCorp+showAdvertisement():void+showAdvertisement():void+getCorpName():String+getCorpName():String第5章的例子17的UML类图khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com4.例子13的设计符合开-闭原则。5.例子17的设计符合开-闭原则。khdaw.comkhdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题81.采用新增的策略为选手计算得分。增加新的具体策略StrategyFour。StrategyFour类将doublecomputeScore(double[]a)方法实现为去掉数组a的元素中的一个最大值和一个最小值,然后计算剩余元素的几何平均值。importjava.util.Arrays;publicclassStrategyFourimplementsComputableStrategy{publicdoublecomputeScore(double[]a){if(a.length<=2)return0;khdaw.comdoublescore=0,multi=1;Arrays.sort(a);intn=a.length-2;for(inti=1;i0)button.setLabel(name);validate();}}classWindowPanelextendsFrame{Mypanelpanel1,panel2;WindowPanel(){panel1=newMypanel();panel2=newMypanel();panel1.setBackground(Color.red);panel2.setBackground(Color.blue);add(panel1,BorderLayout.SOUTH);add(panel2,BorderLayout.NORTH);setSize(300,320);setVisible(true);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com});validate();}}7.参见10.13,参照本章例子10.21。8.importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassXiti8{publicstaticvoidmain(Stringargs[]){MoveFramef=newMoveFrame();f.setBounds(12,12,300,300);f.setVisible(true);khdaw.comf.setTitle("移动");f.validate();f.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}}classMoveFrameextendsJFrameimplementsActionListener{JButtoncontrolButton,movedButton;publicMoveFrame(){controlButton=newJButton("单击我运动另一个按钮");controlButton.addActionListener(this);movedButton=newJButton();movedButton.setBackground(newColor(12,200,34));setLayout(null);add(controlButton);add(movedButton);controlButton.setBounds(10,30,130,30);movedButton.setBounds(100,100,10,10);}publicvoidactionPerformed(ActionEvente){intx=movedButton.getBounds().x;inty=movedButton.getBounds().y;x=x+5;y=y+1;movedButton.setLocation(x,y);if(x>200){x=100;y=100;}}}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com9.importjava.awt.*;importjava.awt.event.*;publicclassXiti9{publicstaticvoidmain(Stringargs[]){Winwin=newWin();}}classWinextendsFrameimplementsKeyListener{Buttonb[]=newButton[8];intx,y;Win(){setLayout(newFlowLayout());for(inti=0;i<8;i++){b[i]=newButton(""+i);khdaw.comb[i].addKeyListener(this);add(b[i]);}addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});setBounds(10,10,300,300);setVisible(true);validate();}publicvoidkeyPressed(KeyEvente){intmoveDistance=1;Componentcom=(Component)e.getSource();intx=(int)com.getBounds().x;inty=(int)com.getBounds().y;Componentcomponent[]=this.getComponents();if(e.getKeyCode()==KeyEvent.VK_UP){y=y-moveDistance;com.setLocation(x,y);RectanglecomRect=com.getBounds();for(intk=0;k=300)y=300;}elseif(e.getKeyCode()==KeyEvent.VK_LEFT){x=x-moveDistance;com.setLocation(x,y);RectanglecomRect=com.getBounds();for(intk=0;k=300)x=300;}}publicvoidkeyTyped(KeyEvente){}publicvoidkeyReleased(KeyEvente){}}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题111.A2.importjava.awt.event.*;importjava.awt.*;importjavax.swing.*;classDwindowextendsFrameimplementsActionListener{TextFieldinputNumber;TextAreasave;Dwindow(Strings){super(s);khdaw.cominputNumber=newTextField(22);inputNumber.addActionListener(this);save=newTextArea(12,16);setLayout(newFlowLayout());add(inputNumber);add(save);setBounds(60,60,300,300);setVisible(true);validate();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}publicvoidactionPerformed(ActionEventevent){Strings=inputNumber.getText();doublen=0;try{n=Double.parseDouble(s);if(n>1000){intselect=JOptionPane.showConfirmDialog(this,"已经超过1000确认正确吗?","确认对话框",JOptionPane.YES_NO_OPTION);if(select==JOptionPane.YES_OPTION){save.append("n"+s);}else{inputNumber.setText(null);}}else{save.append("n"+s);}}catch(NumberFormatExceptione){JOptionPane.showMessageDialog(this,"您输入了非法字符khdaw.com","警告对话框",若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.comJOptionPane.WARNING_MESSAGE);inputNumber.setText(null);}}}publicclassE{publicstaticvoidmain(Stringargs[]){newDwindow("带对话框的窗口");}}3.参照以下例子完成Xiti3.javapublicclassXiti3{publicstaticvoidmain(Stringargs[]){khdaw.comWindowColorwin=newWindowColor();win.setTitle("带颜色对话框的窗口");}}WindowColor.javaimportjava.awt.event.*;importjava.awt.*;importjavax.swing.*;publicclassWindowColorextendsJFrameimplementsActionListener{JButtonbutton;WindowColor(){button=newJButton("打开颜色对话框");button.addActionListener(this);setLayout(newFlowLayout());add(button);setBounds(60,60,300,300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidactionPerformed(ActionEvente){ColornewColor=JColorChooser.showDialog(this,"调色板",button.getBackground());if(newColor!=null){button.setBackground(newColor);}}}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题121.使用FileInputStream流。2.FileInputStream按字节读取文件,FileReader按字符读取文件。3.不能。4.使用对象流写入或读入对象时,要保证对象是序列化的。5.使用对象流很容易得获取一个序列化对象的克隆,只需将该对象写入到对象输出流,那么用对象输入流读回的对象一定是原对象的一个克隆。6.importjava.io.*;publicclassXiti6khdaw.com{publicstaticvoidmain(Stringargs[]){Filef=newFile("E.java");;try{RandomAccessFilerandom=newRandomAccessFile(f,"rw");random.seek(0);longm=random.length();while(m>=0){m=m-1;random.seek(m);intc=random.readByte();if(c<=255&&c>=0){System.out.print((char)c);}else{m=m-1;random.seek(m);bytecc[]=newbyte[2];random.readFully(cc);System.out.print(newString(cc));}}}catch(Exceptionexp){}}}7.importjava.io.*;publicclassXiti7{publicstaticvoidmain(Stringargs[]){Filefile=newFile("E.java");FiletempFile=newFile("temp.txt");try{FileReaderinOne=newFileReader(file);BufferedReaderinTwo=newBufferedReader(inOne);FileWritertofile=newFileWriter(tempFile);BufferedWriterout=newBufferedWriter(tofile);Strings=null;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.cominti=0;s=inTwo.readLine();while(s!=null){i++;out.write(i+""+s);out.newLine();s=inTwo.readLine();}inOne.close();inTwo.close();out.flush();out.close();tofile.close();}catch(IOExceptione)khdaw.com{System.out.println(e);}}}8.属于操作题目,解答略。9.importjava.util.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassXiti9{publicstaticvoidmain(Stringargs[]){EWindoww=newEWindow();w.validate();}}classEWindowextendsFrameimplementsActionListener,ItemListener{Stringstr[]=newString[7],s;FileReaderfile;BufferedReaderin;Buttonstart,next;Checkboxcheckbox[];TextField题目,分数;intscore=0;CheckboxGroupage=newCheckboxGroup();EWindow(){super("英语单词学习");分数=newTextField(10);题目=newTextField(70);start=newButton("重新练习");start.addActionListener(this);next=newButton("下一题目");next.addActionListener(this);checkbox=newCheckbox[4];for(inti=0;i<=3;i++){checkbox[i]=newCheckbox("",false,age);khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.comcheckbox[i].addItemListener(this);}try{file=newFileReader("English.txt");in=newBufferedReader(file);}catch(IOExceptione){}setBounds(20,100,660,300);setVisible(true);Boxbox=Box.createVerticalBox();Panelp1=newPanel(),p2=newPanel(),p3=newPanel(),p4=newPanel(),p5=newPanel();p1.add(newLabel("题目:"));p1.add(题目);p2.add(newLabel("选择答案:"));for(inti=0;i<=3;i++){p2.add(checkbox[i]);}khdaw.comp3.add(newLabel("您的得分:"));p3.add(分数);p4.add(start);p4.add(next);box.add(p1);box.add(p2);box.add(p3);box.add(p4);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});add(box,BorderLayout.CENTER);reading();}publicvoidreading(){inti=0;try{s=in.readLine();if(!(s.startsWith("endend"))){StringTokenizertokenizer=newStringTokenizer(s,"#");while(tokenizer.hasMoreTokens()){str[i]=tokenizer.nextToken();i++;}题目.setText(str[0]);for(intj=1;j<=4;j++){checkbox[j-1].setLabel(str[j]);}}elseif(s.startsWith("endend")){题目.setText("学习完毕");for(intj=0;j<4;j++){checkbox[j].setLabel("end");in.close();file.close();}}}catch(Exceptionexp){题目.setText("无试题文件");}}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.compublicvoidactionPerformed(ActionEventevent){if(event.getSource()==start){score=0;分数.setText("得分:"+score);try{file=newFileReader("English.txt");in=newBufferedReader(file);}catch(IOExceptione){}reading();}if(event.getSource()==next){reading();for(intj=0;j<4;j++){checkbox[j].setEnabled(true);}khdaw.com}}publicvoiditemStateChanged(ItemEvente){for(intj=0;j<4;j++){if(checkbox[j].getLabel().equals(str[5])&&checkbox[j].getState()){score++;分数.setText("得分:"+score);}checkbox[j].setEnabled(false);}}}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.com习题131.一个使用链式结构,一个使用顺序结构。2.8。3.ABCD。4.选用HashMap来存储。5.importjava.util.*;classUFlashKeyimplementsComparable{doubled=0;UFlashKey(doubled){khdaw.comthis.d=d;}publicintcompareTo(Objectb){UFlashKeyst=(UFlashKey)b;if((this.d-st.d)==0)return-1;elsereturn(int)((this.d-st.d)*1000);}}classUFlash{Stringname=null;doublecapacity,price;UFlash(Strings,doublem,doublee){name=s;capacity=m;price=e;}}publicclassXiti5{publicstaticvoidmain(Stringargs[]){TreeMaptreemap=newTreeMap();Stringstr[]={"U1","U2","U3","U4","U5","U6","U7","U8","U9","U10"};doublecapacity[]={1,2,2,4,0.5,10,8,4,4,2};doubleprice[]={30,66,90,56,50,149,120,80,85,65};UFlashUFlash[]=newUFlash[10];for(intk=0;kcollection=treemap.values();Iteratoriter=collection.iterator();while(iter.hasNext()){UFlashstu=iter.next();System.out.println("U盘"+stu.name+"容量"+stu.capacity);}treemap.clear();for(intk=0;k2.importjava.applet.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassXiti2extendsAppletimplementsActionListener{TextFieldtext1,text2;Labellabel;publicvoidinit(){text1=newTextField(10);text2=newTextField(20);Boxbox1=Box.createHorizontalBox();Boxbox2=Box.createHorizontalBox();BoxboxV=Box.createVerticalBox();box1.add(newLabel("输入一个数回车确定:"));box1.add(text1);label=newLabel("数的平方:");box2.add(label);box2.add(text2);boxV.add(box1);boxV.add(box2);add(boxV);text2.setEditable(false);khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网www.khdaw.comtext1.addActionListener(this);}publicvoidactionPerformed(ActionEvente){Stringnumber=e.getActionCommand();try{doublen=Double.parseDouble(number);doublem=n*n;label.setText(n+"的平方:");text2.setText(""+m);text1.setText("");validate();}catch(NumberFormatExceptionexp){text2.setText(""+exp);}}}khdaw.com3.参照本章例子17.2,17.3。khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com'

您可能关注的文档