您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Java2实用教程(第三版)课后答案-清华大学出
课后习题参考答案,保证你满意第1章Java入门1.开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java.exe)执行字节码文件;Java小应用程序使用支持Java标准的浏览器来执行。2.怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答:①应用程序必须有main方法,这个方法是程序执行的入口。小应用程序没有main方法。②应用程序的主类不一定用public修饰;小应用程序的主类必须用public修饰。3.Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成。②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为.java。小应用程序:源文件名与主类的类名相同,拓展名是.java。4.在运行小程序的HTML文件中可以使用codebase属性指定小程序的字节码所驻留的目录。如果不使用codebase属性,小程序的字节码文件必须和运行它的HTML文件在同一目录中。编写一个小程序并将小程序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTML文件(注意其中的codebase属性):appletcode=你的小程序的字节码width=200height=300codebase=C:\5000/applet存放在另一个目录中。答:以书中小应用程序为例进行说明:①编写Java小应用程序源代码importjava.applet.*;importjava.awt.*;publicclassBoyextendsApplet{publicvoidpaint(Graphicsg){g.setColor(Color.red);g.drawString(我一边喝着咖啡,一边学Java呢,5,30);g.setColor(Color.blue);g.drawString(我学得很认真,10,50);}}②将上述代码命名为Boy.java并进行编译得到Boy.class字节码文件;将得到的字节码文件存放在C:\5000文件夹下;③编写小应用程序的HTML源文件:appletcode=Boy.classwdith=200height=300codebase=C:\5000/applet④将上述编写好的代码命名为Boy.html;并将此文件存放在C:\5000文件夹以外的任意一个文件夹中(如C:\1000);⑤运行Boy.html。第2章标识符、关键字和数据类型1.什么叫标识符?标识符的规则是什么?答:①用来标识类名、变量名、、方法名、类型名、数组名、文件名的有效字符序列。②由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符,而且关键字不能作为标识符。2.什么叫关键字?请说出5个关键字。答:①Java语言中已经被赋予特定意义的一些单词。②classbreakpublicreturnstaticextends等。3.Java的基本数据类型都是什么?答:boolean(逻辑型)char(字符型)float、double(浮点型)byte、short、int、long(整型)。4.下列哪些语句是错误的:intx=8;byteb=127;b=x;答:b=x语句错误;原因是高级别的变量赋值给低级别的变量时,一定要用显式转换即b=(byte)x;。5.下列程序的输出结果是什么?publicclassE{publicstaticvoidmain(Stringargs[]){long[]a={1,2,3,4};long[]b={100,200,300,400,500};b=a;System.out.println(数组b的长度:+b.length);System.out.println(b[0]=+b[0]);}}答:数组b的长度:4b[0]=16.上机运行下列程序,注意观察输出结果。publicclassE{publicstaticvoidmain(Stringargs[]){for(inti=20302;i20322;i++){System.out.println((char)i);}}}答:低住佐佑佒体佔何佖佗佘余佚佛作佝佞佟你佡7.System.out.println(“你好”);可输出字符串,也可以使用System.out.println()输出变量或表达式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如:System.out.println(“”+x);System.out.println(“:”+123+“大于”+122);等。上机调试下列程序,注意观察结果,特别注意System.out.print()和System.out.println()的区别。publicclassOutputData{publicstaticvoidmain(Stringargs[]){intx=234,y=432;System.out.println(x++(2*x));System.out.print(我输出结果后不回车);System.out.println(我输出结果后自动回车到下一行);System.out.println(x+y=+(x+y));System.out.println(+x+y+=234432);}}答:234468我输出结果后不回车我输出结果后自动回车到下一行x+y=666234432=2344328.编写一个Java应用程序,输出全部的希腊字母。答:publicclassa{publicstaticvoidmain(Stringargs[]){System.out.println(这是我的第一个程序);}}第3章运算符、表达式和语句1.下列程序的输出结果是什么?publicclassE{publicstaticvoidmain(Stringargs[]){charx='你',y='e',z='吃';if(x'A'){y='爱';z='情';}elsey='我';z='她';System.out.println(+x+y+z);}}答:你爱她2.下列程序的输出结果是什么?publicclassE3{publicstaticvoidmain(Stringargs[]){charc='\0';for(inti=1;i=4;i++){switch(i){case1:c='b';System.out.print(c);case2:c='e';System.out.print(c);break;case3:c='p';System.out.print(c);default:System.out.print(!);}}}}答:beep!!3.编写应用程序,求1!+2!+…+10!。答:classFact{publicstaticvoidmain(Stringargs[]){intfact,sum=0;for(inti=1;i=10;i++){fact=1;for(intj=1;j=i;j++)fact*=j;sum+=fact;}System.out.println(1到10的阶乘之和是:+sum);}}4.编写一个应用程序,求100以内的全部素数。答:classPrimes{publicstaticvoidmain(Stringargs[]){intw=1;for(inti=2;i=100;i++){for(intj=2;ji;j++){w=i%j;if(w==0)break;}if(w!=0)System.out.println(i+是素数);}}}5.分别用do―while和for循环计算1+1/2!+1/3!+1/4!+…的前20项和。答:①for循环classSum{publicstaticvoidmain(Stringargs[]){intfact;doublesum=0;for(inti=1;i=20;i++){fact=1;for(intj=1;j=i;j++)fact*=j;sum+=1.0/fact;}System.out.println(sum);}}②do―while循环classSum{publicstaticvoidmain(Stringargs[]){inti=1;intfact;doublesum=0;do{fact=1;intj=0;while(++j=i)fact*=j;sum+=1.0/fact;}while(++i=20);System.out.println(sum);}}6.一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。答:classWanshu{publicstaticvoidmain(Stringargs[]){intx,i,sum;for(x=1;x=1000;x++){sum=0;for(i=1;ix;i++){if(x%i==0)sum+=i;}if(x==sum)System.out.println(x+是完数);}}}7.编写应用程序,分别使用while和for循环计算8+88+888+…前10项之和。答:①for循环classTheSum{publicstaticvoidmain(Stringargs[]){longsum=0,data=8;for(inti=1;i=10;i++){sum=sum+data;data=data*10+8;}System.out.println(sum);}}②while循环classTheSum{publicstaticvoidmain(Stringargs[]){longsum=0,data=8,i=0;while(++i=10){sum=sum+data;data=data*10+8;}System.out.println(sum);}}8.编写应用程序,输出满足1+2+3+…+n8888的最大正整数n。答:classMaxn{publicstaticvoidmain(Stringargs[]){intk=1,sum=0;while((sum+=k)8888)k++;k--;System.out.println(最大能取到:+k);}}第4章类、对象和接口1.类中的实例变量在什么时候会被分配内存空间?答:当该类创建对象之后,实例变量才会被分配相应的内存空间。2.什么叫方法的重载?构造方法可以重载吗?答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。②构造方法可以重载。3.类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?答:①类中的实例方法可以操作类变量。②类方法不可以操作实例变量4.类中的实例方法可以用类名直接调用吗?答:类中的实例方法不可以用类名直接调用。5.举例说明protected方法和友好方法的区别。答:当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。6.举例说明类变量和实例变量的区别。答:⑴书写:定义成员变量时,类变量有static修饰;实例变量没有static修饰。例:classA{intx;//实例变量staticinty;//类变量}⑵内存:不创建对象,类的实例
本文标题:Java2实用教程(第三版)课后答案-清华大学出
链接地址:https://www.777doc.com/doc-2878361 .html