Java2实用教程(第三版)课后习题参考答案

合集下载

JAVA大学实用教程(第3版)课后习题答案.doc

JAVA大学实用教程(第3版)课后习题答案.doc

第一章Java语言概述2."java编译器将源文件编译为的字节码文件是机器码”这句话正确吗?答:不正确3.java l)y.用程序的主类必须含有怎样的方法?答:含有main方法4.“java应用程序必须有一个类是public类”这句话止确吗?答;不止确,只能冇一个public类5.请叙述java源程序的命名规则。

答:与public的类同名。

6.源文件生成的字节码文件在运行时都加载到内存中吗?答:非也,动态随需要运行才加载。

第二章基本数据类型和数组4.下列哪些语句是错的?int x=120;byte =120;b=x:答:b=x;错应为b= (byte) x5•下列哪些语句是错的?答:y=d;错,应y= (float) d6.下列两个语句是等价的吗?char x=97;char x='a';答:是等价的。

7.下列systcm.out.printf语句输出结果是什么?int a=97;byte bl=(byte)128;byte b2=(byte)(-129);System.out.printf(u%c,%d,%d,,,a,b 1 ,b2);答:输出a ,・128, 1278.数组是基本数据类型吗?怎样获取数组的长度?答:不是基本数据类型,是复合数据类型。

可以通过:数组名.length的方法获得数组长度9.假设有两个int类型数纽:int[] a=new int[10];int[] b=ncw int[8];b=a;A[0]=100;B[0]的值一•定是100吗?答;一定,因为a数组与b数组引用相同。

10.下列两个语旬的作用等价吗?int[] a={l, 2, 3, 4, 5, 6, 7, 8};int[] a=new int[8];答:不等价,前者有初值,后者只分配空间。

初值数组元索为0第二章作业题1.public class ZuoYe2 1 {public static void main (String args[ ]){ char c-a*;System.out.println(”字母"+c+"在unicode 表中的顺序位置:”+(int)c);System.out.println(M字母表:”);while(c<-«,){System.out.print(" ”+c);c=(char)(c+l);}}}2.import java.util.*;public class ZuoYe2_2{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);long chcngji=l;int m=0;while(reader.hasNextlnt()){int x=reade r.n extlnt();m=m+l;chcngji=chcngji*x;}System.out.println(m+,f个数的乘积为,f+chengj i);第三章运算符、表达式与语句1•下列语句输出的结果是什么?int a=100, x,y;x=++a;y=a—System.out.printf(4<%d, %d,%d”,x,y,a);答:101, 101, 1002.下列语句那些冇错误?int x=0;x=5.0/2;float y=12.5F;y=5.0/2;答:x=5.0/2;错。

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义张跃平编著(3版)习题解答1-17章完整版.doc第一章习题1.需3个步骤:1)用文本编辑器编写源文件2)使用javac编译源文件,得到字节码文件3)应用程序使用解释器运行;小应用程序使用浏览器运行。

2.应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。

小应用程序必须有一个类是java.applet.Applet类的子类,该类称做主类。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

小应用程序的主类必须用public修饰。

3.java的源程序是由若干个书写形式互相独立的类组成的。

小应用程序的主类必须用public修饰。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

一个java的源程序至多可以有一个public类。

Java源文件的名字可以和其中某个类的名字相同,扩展名是.java,但是,如果源程序中有public类,那么源文件的名字必须和这个public类的名字相同,扩展名是.java。

4.属于操作,解答略。

第二章习题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。

标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。

3.boolean ,char,byte,short,int,long,float,double。

4.b=x;5.数组b的长度为4b[0]=16.属于操作题,解答略。

7.属于操作题,解答略。

8.public class E{ public static void main (String args[ ]) { char cStart='α',cEnd='ω';for(char c=cStart;c<=cEnd;c++){ System.out.print(" "+c);}}}第三章习题1.你爱她2.beep!!3.public class Xiti3_3{ public static void main(String args[]){ double sum=0,a=1;int i=1;while(i<=20){ sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}4.public class Xiti4{ public static void main(String args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break;}if(i>j/2){ System.out.print(" "+j);}}}}5.class Xiti5{ public static void main(String args[]){ double sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while(i<=20);System.out.println("使用do-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);}}6.class Xiti6{ public static void main(String args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}7.public class E Xiti7{ public static void main(String args[]){ int m=8,item=m,i=1;long sum=0;while(i<=10){ sum=sum+item;i++;item=item*10+m;}System.out.println(sum);for(i=1,sum=0,item=m;i<=10;i++){ sum=sum+item;item=item*10+m;}System.out.println(sum);}}8.public class E{ public static void main(String args[]){ int n=1;long sum=0;while(true){ sum=sum+n;n++;if(sum>=8888)break;}System.out.println("满足条件的最大整数:"+(n-1));}}第四章习题1.用该类创建对象时。

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)上机实践1 初识JA V A ............................................................................... 错误!未定义书签。

实验1一个简单的应用程序 .................................................................. 错误!未定义书签。

实验2一个简单的J A V A A PPLET程序 .................................................... 错误!未定义书签。

实验3联合编译 ...................................................................................... 错误!未定义书签。

上机实践2 基本数据类型与控制语句...................................................... 错误!未定义书签。

实验1输出希腊字母表 .......................................................................... 错误!未定义书签。

实验2回文数 .......................................................................................... 错误!未定义书签。

实验3猜数字游戏 .................................................................................. 错误!未定义书签。

Java 2实用教程(3版)实验指导及答案

Java 2实用教程(3版)实验指导及答案

Java 2实用教程(第三版)实验指导与习题解答上机实践1 初识JA V A (4)实验1一个简单的应用程序 (4)实验2一个简单的J A V A A PPLET程序 (4)实验3联合编译 (5)上机实践2 基本数据类型与控制语句 (6)实验1输出希腊字母表 (6)实验2回文数 (7)实验3猜数字游戏 (9)上机实践3 类与对象 (10)实验1三角形、梯形和圆形的类封装 (10)实验2实例成员与类成员 (13)实验3使用PACKAGE语句与IMPORT语句 (15)上机实践4 继承与接口 (17)实验1继承 (17)实验2上转型对象 (20)实验3接口回调 (22)上机实践5 字符串、时间与数字 (24)实验1S TRING类的常用方法 (24)实验2比较日期的大小 (25)实验3处理大整数 (26)上机实践6 组件及事件处理 (27)实验1算术测试 (27)实验2信号灯 (30)实验3布局与日历 (32)上机实践7 组件及事件处理2 (36)实验1方程求根 (36)实验2字体对话框 (39)实验3英语单词拼写训练 (42)上机实践8 多线程 (46)实验1汉字打字练习 (46)实验2旋转的行星 (48)实验3双线程接力 (52)上机实践9 输入输出流 (55)实验1学读汉字 (55)实验2统计英文单词字 (58)实验2读取Z IP文件 (62)上机实践10 JAV A 中的网络编程 (63)实验1读取服务器端文件 (63)实验2使用套接字读取服务器端对象 (65)实验3基于UDP的图像传输 (68)上机实践11 数据结构 (72)实验1扫雷小游戏 (72)实验2排序与查找 (77)实验3使用T REE S ET排序 (78)上机实践12 JAV A SWING (80)实验1JL AYERED P ANE分层窗格 (80)实验2使用表格显示日历 (81)实验3多文档界面(MDI) (84)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)上机实践1 初识JA V A (4)实验1一个简单的应用程序 (4)实验2一个简单的J A V A A PPLET程序 (4)实验3联合编译 (5)上机实践2 基本数据类型与控制语句 (6)实验1输出希腊字母表 (6)实验2回文数 (7)实验3猜数字游戏 (9)上机实践3 类与对象 (10)实验1三角形、梯形和圆形的类封装 (10)实验2实例成员与类成员 (13)实验3使用PACKAGE语句与IMPORT语句 (15)上机实践4 继承与接口 (17)实验1继承 (17)实验2上转型对象 (20)实验3接口回调 (22)上机实践5 字符串、时间与数字 (24)实验1S TRING类的常用方法 (24)实验2比较日期的大小 (25)实验3处理大整数 (26)上机实践6 组件及事件处理 (27)实验1算术测试 (27)实验2信号灯 (30)实验3布局与日历 (32)上机实践7 组件及事件处理2 (36)实验1方程求根 (36)实验2字体对话框 (39)实验3英语单词拼写训练 (42)上机实践8 多线程 (46)实验1汉字打字练习 (46)实验2旋转的行星 (48)实验3双线程接力 (52)上机实践9 输入输出流 (55)实验1学读汉字 (55)实验2统计英文单词字 (58)实验2读取Z IP文件 (62)上机实践10 JAV A 中的网络编程 (63)实验1读取服务器端文件 (63)实验2使用套接字读取服务器端对象 (65)实验3基于UDP的图像传输 (68)上机实践11 数据结构 (72)实验1扫雷小游戏 (72)实验2排序与查找 (77)实验3使用T REE S ET排序 (78)上机实践12 JAV A SWING (80)实验1JL AYERED P ANE分层窗格 (80)实验2使用表格显示日历 (81)实验3多文档界面(MDI) (84)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。

《Java2实用教程》课后习题参考答案(第三版)

《Java2实用教程》课后习题参考答案(第三版)

《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属性):存放在另一个目录中。

请问:以书中小应用程序为例进行说明:①编写java小应用程序源代码importjava.applet.*;importjava.awt.*;publicclassboyextendsapplet{publicvoidpaint(graphicsg){g.setcolor(color.red);g.drawstring(\我一边喝着咖啡,一边学java呢\g.setcolor(color.blue);g.drawstring(\我学得很认真\}}②将上述代码命名为boy.java并进行编译得到boy.class字节码文件;将得到的字节码文件存放在③撰写大应用程序的html源文件:④将上述编写好的代码命名为boy.html;并将此文件存放在c:\\5000文件夹以外的任意一个文件夹中(如c:\\1000);⑤运行boy.html。

java2实用教程课后习题答案(第三版读程序题)

java2实用教程课后习题答案(第三版读程序题)

读程序题第二章4. 下列哪些语句是错误的:int x = 8;byte b = 127;b = x;答:b=x语句错误;原因是高级别的变量赋值给低级别的变量时,一定要用显式转换即b=(byte)x; 。

5. 下列程序的输出结果是什么?public class E{public static void main(String args[]){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. 上机运行下列程序,注意观察输出结果。

public class E{public static void main(String args[]){for(int i=20302;i<20322;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( )的区别。

public class OutputData{public static void main(String args[]){int x=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+"=");}}答: 234<468我输出结果后不回车我输出结果后自动回车到下一行x+y= 666=第三章1. 下列程序的输出结果是什么?public class E{public static void main(String args[]){char x='你',y='e',z='吃';if(x>'A'){y='爱';z='情';}elsey='我';z='她';System.out.println(" "+x+y+z);}}答: 你爱她2. 下列程序的输出结果是什么?public class E3{public static void main(String args[]){char c='\0';for(int i=1;i<=4;i++){switch(i){case 1:c='b';System.out.print(c);case 2:c='e';System.out.print(c);break;case 3:c='p';System.out.print(c);default:System.out.print("!");}}}}答:beep!!12.下列程序有什么错误?public class Takecare{int a=90;static float b=10.98f;public static void main(String args[]){float c=a+b;System.out.println("c="+c);}}答: 语句float c=a+b;错误。

Java2实用教程(第三版)实验指导与习题解答

Java2实用教程(第三版)实验指导与习题解答

Java2实用教程(第三版)实验指导与习题解答Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)1上机实践 1 初识JAVA ................................................................................................................. 4 实验 1 一个简单的应用程序.................................................................................................... 4 实验 2 一个简单的JAVA APPLET程序...................................................................................... 4 实验 3 联合编译 (5)上机实践 2 基本数据类型与控制语句 ........................................................................................ 6 实验1 输出希腊字母表 ............................................................................................................ 6 实验 2 回文数 . (7)实验 3 猜数字游戏.................................................................................................................... 9 上机实践 3 类与对象.................................................................................................................. 10 实验 1 三角形、梯形和圆形的类封装................................................................................... 10 实验2 实例成员与类成员 ...................................................................................................... 13 实验3 使用*****语句与IMPORT语句 ............................................................................ 15 上机实践4 继承与接口.............................................................................................................. 17 实验1 继承..............................................................................................................................17 实验 2 上转型对象.................................................................................................................. 20 实验3接口回调 (22)上机实践 5 字符串、时间与数字.............................................................................................. 24 实验 1 STRING类的常用方法.................................................................................................. 24 实验 2 比较日期的大小 ..........................................................................................................25 实验 3 处理大整数.................................................................................................................. 26 上机实践 6 组件及事件处理...................................................................................................... 27 实验1 算术测试......................................................................................................................27 实验 2 信号灯 (30)实验 3 布局与日历.................................................................................................................. 32 上机实践7 组件及事件处理2 ................................................................................................... 36 实验1 方程求根 . (36)实验 2 字体对话框.................................................................................................................. 39 实验 3 英语单词拼写训8 多线程 (46)实验 1 汉字打字练习 .............................................................................................................. 46 实验2 旋转的行星.................................................................................................................. 48 实验 3 双线程接力.................................................................................................................. 52 上机实践9 输入输出流.............................................................................................................. 55 实验1 学读汉字. (55)实验 2 统计英文单词字 .......................................................................................................... 58 实验2 读取ZIP文件 (62)2上机实践10 JAVA 中的网络编程 ............................................................................................ 63 实验1 读取服务器端文件 (63)实验 2 使用套接字读取服务器端对象................................................................................... 65 实验3 基于UDP的图像传输 ................................................................................................ 68 上机实践11 数据结构................................................................................................................ 72 实验 1 扫雷小游戏.................................................................................................................. 72 实验 2 排序与查验 3 使用*****排序 ...................................................................................................... 78 上机实践12 JAVA SWING .......................................................................................................80 实验 1 *****DPANE分层窗格 ............................................................................................ 80 实验2 使用表格显示日历 (81)实验 3 多文档界面(MDI) (84)3上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println(\你好,很高兴学习Java\【代码2】:System.out.println(\2.模板代码Hello.javapublic class Hello {public static void main (String args[ ]) {【代码1】//命令行窗口输出\你好,很高兴学习Java\ A a=new A(); a.fA(); } } class A {void fA() {【代码2】//命令行窗口输出\ } }实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString(\这是一个Java Applet 程序\【代码2】:g.drawString(\我改变了字体\2.模板代码FirstApplet.javaimport java.applet.*;4import java.awt.*;public class FirstApplet extends Applet {public void paint(Graphics g) {g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red);g.setFont(new Font(\宋体\【代码2】//在Java Applet中绘制一行文字:“我改变了字体” } }实验3 联合编译1.答案:【代码1】:System.out.println(\你好,只需编译我\【代码2】:System.out.println(\【代码3】:System.out.println(\【代码4】:System.out.println(\ C\2.模板代码模板1:Hello.javapublic class MainClass {public static void main (String args[ ]) {【代码1】//命令行窗口输出\你好,只需编译我\ A a=new A();a.fA(); B b=new B();b.fB(); } }模板2 :A.javapublic class A {void fA() {【代码2】//命令行窗口输出\ } }5。

java2实用教程(第三版)第四章课后习题编程题

java2实用教程(第三版)第四章课后习题编程题

第四章15:interface 计算面积{ int 面积(int x,int y);}interface 计算体积{ int 体积(int x,int y,int z);}class 长方形implements 计算面积{ public int 面积(int x,int y){ return x*y;}}class 正方形implements 计算面积{ public int 面积(int x,int y){return x*x;}}class 长方体implements 计算体积{ public int 体积(int x,int y,int z) { return x*y*z;}}class E4_15{ public static void main(String args[]) { 计算面积js;js= new 长方形();System.out.println(js.面积(5,6));js=new 正方形();System.out.println(js.面积(4,4));计算体积tj;tj= new 长方体();System.out.println(tj.体积(4,5,6)); }}16:class A{ public void f(){ for(int i=97;i<123;i++){ char a=(char)i;System.out.print(a);}System.out.println();}}class B extends A{ public void g(){ //for(int i=(int)'α';i<=(int)'ω';i++)for(char a='α';a<='ω';a++)//System.out.print((char)i);SystemSystem.out.println();}}class E4_16{ public static void main(String args[]){ A a=new A();a.f();B b=new B();b.f();b.g();}}17:class MyException extends Exception{ String message;MyException(int m){ message=m+"大于1000";}public String toString(){return message;}}class Student{public void speak(int m) throws MyException{if(m>1000){MyException exception=new MyException(m);throw exception;}elseSystem.out.println(m);}}class E4_17{public static void main(String args[]){Student s=new Student();try{ s.speak(1002);}catch(MyException e){System.out.println(e.toString());}}}18:class 最大公约数{public int f(int a,int b){int m=0,n=0;m=a;n=b;if(m>n){int s=m;m=n;n=s;}else{while(m>0){int i=n%m;//int s=n;n=m;m=i;}}return n;}}class 最小公倍数extends 最大公约数{public int f(int a,int b){int m;m=super.f(a,b);return (a*b)/m;}}class E4_18{public static void main(String args[]){最大公约数yueshu =new 最大公约数();System.out.println("24和36的最大公约数:"+yueshu.f(24,36));最小公倍数beishu =new 最小公倍数();System.out.println("12和6的最小公倍数:"+beishu.f(12,6));}}。

Java 2 实用教程(第三版)实验指导与习题解答

Java 2 实用教程(第三版)实验指导与习题解答
public class Hello { //第一个类
public static void main (String args[ ]) { 【代码 1】 //命令行窗口输出"你好,很高兴学习 Java" A a=new A(); //通过创建 A 的对象来调用 A
a.fA();
}
} class A { //第二个类
//命令行窗口输出"I am C"
}
上机实践 2 基本数据类型与控制语句
实验 1 输出希腊字母表
1.答案:
【代码 1】: startPosition=(int)cStart; 【代码 2】: endPosition=(int)cEnd ; 【代码 3】: c=(char)i;
}
模板 2 :A.java
public class A{ void fA(){ 【代码 3】 }
}
//命令行窗口输出"I am A"
4
模板 3 :B.java
public class B{ void fB(){ 【代码 4】 }
}
//命令行窗口输出"I am B"
模板 4 :C.java
public class C{ void fC() { 【代码 5】 }
上机实践 2 基本数据类型与控制语句........................................................................................5
实验 1 输出希腊字母表 ............................................................................................................5 实验 2 回文数 ............................................................................................................................6 实验 3 猜数字游戏 ....................................................................................................................7 实验 4 根据某学生的学习成绩,输出相应的信息.................................................................8 实验 5 根据某学生的学习成绩,输出相应的信息.................................................................9 实验 6 找出所有的水仙花数并输出.........................................................................................9 实验 7 用星号“*”和数字“0-9”排出三角形 ...................................................................10 实验 8 找 1~100 之间的素数 ..................................................................................................11 实验 9 打印图形 ......................................................................................................................11 实验 10 BREAK 和 CONTINUE示范语句..................................................................................12 实验 11 RETURN示范语句........................................................................................................12 实验 12 用牛顿迭代法求解方程.............................................................................................13

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义张跃平编著(3版)习题解答1-17章完整版.doc第一章习题1.需3个步骤:1)用文本编辑器编写源文件2)使用javac编译源文件,得到字节码文件3)应用程序使用解释器运行;小应用程序使用浏览器运行。

2.应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。

小应用程序必须有一个类是java.applet.Applet类的子类,该类称做主类。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

小应用程序的主类必须用public修饰。

3.java的源程序是由若干个书写形式互相独立的类组成的。

小应用程序的主类必须用public修饰。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

一个java的源程序至多可以有一个public类。

Java源文件的名字可以和其中某个类的名字相同,扩展名是.java,但是,如果源程序中有public类,那么源文件的名字必须和这个public 类的名字相同,扩展名是.java。

4.属于操作,解答略。

第二章习题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。

标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。

3.boolean ,char,byte,short,int,long,float,double。

4.b=x;5.数组b的长度为4b[0]=16.属于操作题,解答略。

7.属于操作题,解答略。

8.public class E{ public static void main (String args[ ]) { char cStart='α',cEnd='ω';for(char c=cStart;c<=cEnd;c++){ System.out.print(" "+c);}}}第三章习题1.你爱她2.beep!!3.public class Xiti3_3{ public static void main(String args[]){ double sum=0,a=1;int i=1;while(i<=20){ sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}4.public class Xiti4{ public static void main(String args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break;}if(i>j/2){ System.out.print(" "+j);}}}}5.class Xiti5{ public static void main(String args[]){ double sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while(i<=20);System.out.println("使用do-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);}}6.class Xiti6{ public static void main(String args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}7.public class E Xiti7{ public static void main(String args[]){ int m=8,item=m,i=1;long sum=0;while(i<=10){ sum=sum+item;i++;item=item*10+m;}System.out.println(sum);for(i=1,sum=0,item=m;i<=10;i++){ sum=sum+item;item=item*10+m;}System.out.println(sum);}}8.public class E{ public static void main(String args[]){ int n=1;long sum=0;while(true){ sum=sum+n;n++;if(sum>=8888)break;}System.out.println("满足条件的最大整数:"+(n-1));}}第四章习题1.用该类创建对象时。

Java 2 实用教材(第三版)课后练习题-第二章&第三章(部分)

Java 2 实用教材(第三版)课后练习题-第二章&第三章(部分)

P19 第二章习题
4.答:此程序错误在于: int型和byte型属于不同级别的数据类型,
int的级别高于byte型,当把int的值赋给byte型时,必须执行数据类型转换。

即:y = (byte) x .
5.输出结果如下:
6输出结果如下:
7.此程序输出结果如下图,输出结果表明:System.out.print( )和System.out.println( )的其别在于后者可以自动将是输出结果提至下一行,即:println()起回车的作用。

P33第三章练习
1.此程序输出结果为:
2.此程序输出结果为:
3.1!+2!……+10!之和的求解源程序为:
class W
{ public static void main(String args[])
{ int sum=0,j=1;int i=1;while(i<=10)
{ sum=sum+j;i=i+1;j=j*i;
}
System.out.println("1——10的阶乘之和为sum="+sum);
}
}
次程序的运行结果如下图:
附加题:编写一个Java应用程序,输入全部的日文片假名。

答:编写的源程序为:
public class V
{ public static void main (String args[ ])
{ for(int p=12446;p<=12543;p++)
{ System.out.println("unicode表中编号"+p+"位置上的日语片假名为:"+(char)p);
}
}
}
此程序输出结果如下图所示:。

java2实用教程(第三版)第八章课后习题答案(耿祥义)

java2实用教程(第三版)第八章课后习题答案(耿祥义)

第八章第1题分四个部分分别建四个Java文本(1)public class Application {public static void main(String[] args) {new MyFrame("对话框实践");}}(2)import java.awt.*;import java.awt.event.*;public class ExceptionDialog extends Dialog implements ActionListener {Button btn;public ExceptionDialog(Frame f) {super(f,"Exception!",true);btn = new Button("close");Label label = new Label("输入格式有误!",Label.CENTER);add(label,BorderLayout.CENTER);add(btn,BorderLayout.SOUTH);btn.addActionListener(this);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setVisible(false);}});pack();setLocation(500,330);setResizable(false);}public void actionPerformed(ActionEvent e) {setVisible(false);}}(3)import java.awt.*;import java.awt.event.*;public class MyDialog extends Dialog {Button yes,no;Label label;String mess = null;public MyDialog(Frame f,boolean b) {super(f,"信息提示",b);label = new Label("您输入的数字> 1000!!!是否输入?");label.setAlignment(Label.CENTER);Container con = new Container();con.setLayout(new GridLayout(1,2));yes = new Button("OK");yes.setForeground(Color.red);no = new Button("Cancle");no.setForeground(Color.red);con.add(yes);con.add(no);add(label,BorderLayout.CENTER);add(con,BorderLayout.SOUTH);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setVisible(false);}});pack();setResizable(false);setLocation(510,330);}public void setMess(String mess) {this.mess = mess;bel.setText("您输入的数字" + this.mess + " > 1000!!!是否输入?");}public String getMess() {return this.mess;}public Button getYes() {return this.yes;}public Button getNo() {return this.no;}public void setHide() {yes.setVisible(false);no.setVisible(false);}}(4)import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame implements ActionListener { MyDialog modelDialog;ExceptionDialog exception;TextField num;TextArea dis;public MyFrame(String title) {super(title);modelDialog = new MyDialog(this,true);exception = new ExceptionDialog(this);num = new TextField(20);dis = new TextArea(10,10);dis.setEnabled(false);add(num,BorderLayout.NORTH);add(dis,BorderLayout.CENTER);num.addActionListener(this);modelDialog.getY es().addActionListener(this);modelDialog.getNo().addActionListener(this);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) { System.exit(1);}});setVisible(true);setLocation(500,300);setResizable(false);pack();}public void actionPerformed(ActionEvent e) { Object obj = e.getSource();if(obj == this.num) {String str = this.num.getText();try {if(Integer.parseInt(str) > 1000) {modelDialog.setMess(str);modelDialog.setVisible(true);}else {dis.append(str + "\n");}}catch (NumberFormatException e1) {exception.setVisible(true);}}if(obj == this.modelDialog.getY es()) {dis.append(this.modelDialog.getMess() + "\n");modelDialog.setVisible(false);}else if(obj == this.modelDialog.getNo()) {modelDialog.setVisible(false);}num.setText(null);}}第八章第2题分四个部分分别建5个Java文本(1)public class Application {public static void main(String[] args) {new MyFrame("Dialog");}}(2)import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame implements Info ,ActionListener { TextField num;TextArea info;String mess;InfoDialog infoDialog;ExceptionDialog exceptionDialog;public MyFrame(String s) {super(s);infoDialog = new InfoDialog(this);exceptionDialog = new ExceptionDialog(this);num = new TextField(30);info = new TextArea(10,30);info.setEnabled(false);num.addActionListener(this);add(num,BorderLayout.NORTH);add(info,BorderLayout.CENTER);addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(1);}});pack();setLocation(480,300);setVisible(true);setResizable(false);}public void actionPerformed(ActionEvent e) { mess = e.getActionCommand();if(mess == null) {exceptionDialog.setVisible(true);}try {if(Long.parseLong(mess) > 1000) {infoDialog.notifyDialog();}else {.append(this.mess + "\n");}}catch(NumberFormatException e1) {exceptionDialog.setVisible(true);}this.num.setText(null);}public String getMess() {return this.mess;}public void setInfo() {.append(this.mess + "\n");}}(3)public interface DisDialog {public void notifyDialog();}(4)public interface Info {public String getMess();public void setInfo();}(5)import java.awt.*;import java.awt.event.*;public class InfoDialog extends Dialog implements ActionListener { Label label;Button yes,no;Info info;public InfoDialog(Frame f) {super(f,"info",true); = (Info)f;yes = new Button("ok");yes.addActionListener(this);no = new Button("no");no.addActionListener(this);Container con = new Container();con.setLayout(new FlowLayout());con.add(yes);con.add(no);add(con,BorderLayout.SOUTH);label = new Label("",Label.CENTER);add(label,BorderLayout.CENTER);addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { setVisible(false);}});setSize(340,90);setLocation(500,330);setResizable(false);}public void actionPerformed(ActionEvent e) { Object obj = e.getSource();String str = info.getMess();this.validate();add(label,BorderLayout.CENTER);if(obj == yes) {info.setInfo();}setVisible(false);}public void notifyDialog() {bel.setText("您输入的数字" + info.getMess() + " > 1000!!!是否确认输入?");this.setVisible(true);}}。

java2实用教程(第三版)第七章课后习题答案(耿祥义)

java2实用教程(第三版)第七章课后习题答案(耿祥义)

import java.awt.*;import java.awt.event.*;import java.util.*;public class T7_4 {public static void main(String [] args) {FirstWindow win = new FirstWindow("计算的窗口");}}class FirstWindow extends Frame implements TextListener{ TextArea textA1,textA2;FirstWindow(String s) {setTitle(s);setLayout(new FlowLayout());textA1 = new TextArea(6,15);textA2 = new TextArea(6,15);add(textA1);add(textA2);textA1.addTextListener(this);setBounds(0,0,300,300);setVisible(true);validate();}public void textV alueChanged(TextEvent e) {String s = textA1.getText();StringTokenizer fenxi = new StringTokenizer(s," \n\r");int n = fenxi.countTokens();long sum=0;try{for(int i = 0; i<n; i++) {sum += Long.parseLong(fenxi.nextToken());}textA2.setText("总和" + String.valueOf(sum));double avg = (double)sum/n;textA2.append("\n平均数" + String.valueOf(avg));} catch (NumberFormatException e1) {//System.out.println("输入有误!");System.out.println(s);}}}import java.awt.*;import java.awt.event.*;public class T7_5 {public static void main(String [] args) {new MyFrame("挑单词");}}class MyFrame extends Frame implements ActionListener { TextArea ta1,ta2;Button btn;MyFrame (String s) {super(s);setLayout(new BorderLayout());ta1 = new TextArea(5,15);ta2 = new TextArea(5,15);btn = new Button("追加");btn.addActionListener(this);add(ta1,BorderLayout.EAST);add(ta2,BorderLayout.WEST);add(btn,BorderLayout.SOUTH);setBounds(100,100,300,200);setVisible(true);}public void actionPerformed(ActionEvent e) { String s = ta1.getSelectedText();ta2.append(s);}}//带关闭功能的窗口import java.awt.*;import java.awt.event.*;public class T7_6 {public static void main(String [] args) {new MathWindow("计算");}}class MathWindow extends Frame implements ActionListener {//定义一个类继承于Frame 并实现了接口ActionListenerButton btn_Add,btn_Sub,btn_Mul,btn_Mov;//定义四个表示运算的按钮TextField tf1,tf2,tf3;//定义三个文本框Label l1,l2;//定义两个标签MathWindow(String s) {super(s);//设置标题setLayout(new FlowLayout());//设置窗口模式btn_Add = new Button("加");btn_Sub = new Button("减");btn_Mul = new Button("乘");btn_Mov = new Button("除");//实例化四个表示运算的按钮tf1 = new TextField(8);tf2 = new TextField(8);tf3 = new TextField(8);//实例化三个文本框l1 = new Label("",1);l2 = new Label("=",1);//实例化两个标签add(tf1);add(l1);add(tf2);add(l2);add(tf3);add(btn_Add);add(btn_Sub);add(btn_Mul);add(btn_Mov);//将所需的组件加入到窗口中btn_Add.addActionListener(this);btn_Sub.addActionListener(this);btn_Mul.addActionListener(this);btn_Mov.addActionListener(this);//设置四个表示运算按钮的监视器为本窗口this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {dispose();//撤销当前窗口}});setBounds(100,100,500,80);//设置窗口大小setResizable(false);//设置窗口大小是否可由用户改变setVisible(true);//设置窗口的显示状态validate();//刷新}public void actionPerformed(ActionEvent e) {//实现ActionListener 接口的方法String s1 = tf1.getText();String s2 = tf2.getText();//获取两个文本框的内容try {long m = Long.parseLong(s1);long n = Long.parseLong(s2);//将获取的文本框的内容转换成长整型if(e.getSource() == btn_Add) {//判断事件的发生源并做出相应的处理l1.setText("+");tf3.setText(String.valueOf(m+n));}else if(e.getSource() == btn_Sub) {l1.setText("-");tf3.setText(String.valueOf(m-n));}else if (e.getSource() == btn_Mul) {l1.setText("x");tf3.setText(String.valueOf(m*n));}else if(e.getSource() == btn_Mov) {l1.setText("/");tf3.setText(String.valueOf(1.0*m/n));}else {System.exit(0);}}catch(NumberFormatException e1) {//异常处理System.out.println("输入数字字符串!");}}}import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class T7_7 {public static void main(String [] args) {WindowBox wb = new WindowBox("确定");}}class WindowBox extends Frame implements ActionListener { Box baseBox,boxV1,boxV2;TextField tf1,tf2,tf3;Button btn_OK;TextArea ta;WindowBox(String s) {super(s);tf1 = new TextField(12);tf2 = new TextField(12);tf3 = new TextField(12);boxV1 = Box.createV erticalBox();boxV1.add(new Label("姓名"));boxV1.add(Box.createV erticalStrut(8)); boxV1.add(new Label("E_mail"));boxV1.add(Box.createV erticalStrut(8)); boxV1.add(new Label("职业"));boxV2 = Box.createV erticalBox();boxV2.add(tf1);boxV2.add(Box.createV erticalStrut(8)); boxV2.add(tf2);boxV2.add(Box.createV erticalStrut(8)); boxV2.add(tf3);baseBox = Box.createHorizontalBox(); baseBox.add(boxV1);baseBox.add(Box.createHorizontalStrut(10)); baseBox.add(boxV2);setLayout(new FlowLayout());btn_OK = new Button("提交");btn_OK.addActionListener(this);ta = new TextArea(5,20);add(baseBox);add(btn_OK);add(ta);setBounds(120,125,200,260);setResizable(false);setVisible(true);}public void actionPerformed(ActionEvent e) {String regex = "\\w{1,}@\\w{1,}\56\\w{1,}";String name = tf1.getText();String email = tf2.getText();String pos = tf3.getText();if(!email.matches(regex)) {tf2.setText("非法E_mail地址");}else {String total = "姓名:" + name + "\nE_mail:" + email + "\n职业:" + pos;ta.append(total);}}}import java.awt.*;import java.awt.event.*;public class T7_8 {public static void main(String [] args) {new MyFrame("Panel");}}class MyPanel extends Panel implements ActionListener { TextField tf;Button btn;MyPanel() {setLayout(new GridLayout(2,1));tf = new TextField(10);btn = new Button("");add(tf);add(btn);btn.addActionListener(this);setVisible(true);}public void actionPerformed(ActionEvent e) { String label = tf.getText();btn.setLabel(label);}}class MyFrame extends Frame {MyPanel mp1,mp2;MyFrame(String s) {setLayout(new BorderLayout());mp1 = new MyPanel();mp2 = new MyPanel();add(mp1,BorderLayout.EAST);add(mp2,BorderLayout.WEST);pack();setVisible(true);}}import java.awt.*;import java.awt.event.*;public class T7_9 {public static void main(String [] args) { new WindowCanvas("矩形--画图");}}class Mycanvas extends Canvas {int x,y,width,height;Mycanvas() {setBackground(Color.cyan);}public void setX(int x) {this.x = x;}public void setY(int y) {this.y = y;}public void setWidth(int width) {this.width = width;}public void setHeight(int height) {this.height = height;}public void paint(Graphics g) {Color old = g.getColor();g.setColor(Color.red);g.fillRect(x,y,width,height);g.setColor(old);}}class WindowCanvas extends Frame implements ActionListener { Mycanvas canvas;TextField inputX,inputY,inputW,inputH;Button btn_ok;WindowCanvas(String s) {super(s);canvas = new Mycanvas();inputX = new TextField(5);inputY = new TextField(5);inputW = new TextField(5);inputH = new TextField(5);Panel pNorth = new Panel();Panel pSouth = new Panel();pNorth.add(new Label("矩形的坐标:(x,y)")); pNorth.add(inputX);pNorth.add(inputY);pSouth.add(new Label("矩形的宽和高:(w,h)")); pSouth.add(inputW);pSouth.add(inputH);btn_ok = new Button("确定");btn_ok.addActionListener(this);pSouth.add(btn_ok);add(pNorth,BorderLayout.NORTH);add(canvas,BorderLayout.CENTER);add(pSouth,BorderLayout.SOUTH); setBounds(50,50,600,700);setVisible(true);}public void actionPerformed(ActionEvent e) { int x = 0,y = 0,w = 0,h = 0;try{x = Integer.parseInt(inputX.getText());y = Integer.parseInt(inputY.getText());w = Integer.parseInt(inputW.getText());h = Integer.parseInt(inputH.getText());}catch(NumberFormatException e1) {x = 100;y = 100;w = 100;h = 100;}finally {canvas.setX(x);canvas.setY(y);canvas.setWidth(w);canvas.setHeight(h);canvas.repaint();}}}import java.awt.*;import java.awt.event.*;public class T7_10 {public static void main(String [] args) {new WindowList("商品信息");}}class WindowList extends Frame implements ItemListener,ActionListener {List list;TextArea ta;WindowList(String s) {super(s);list = new List(3,false);ta = new TextArea(40,10);list.add("lenovo");list.add("ThinkPad");list.add("IdeaPad");list.addItemListener(this);list.addActionListener(this);add(list,BorderLayout.NORTH);add(ta,BorderLayout.CENTER);setBounds(10,10,300,400);setVisible(true);}public void itemStateChanged(ItemEvent e) { String info = list.getSelectedItem();if(info.equals("lenovo")) {String dis = "价格:3000\n产地:中国";ta.setText(dis);}else if(info.equals("ThinkPad")) {String dis = "价格:7000\n产地:中国+美国";ta.setText(dis);}else {String dis = "价格:5000\n产地:中国香港";ta.setText(dis);}}public void actionPerformed(ActionEvent e) {String info = list.getSelectedItem();if(info.equals("lenovo")) {String dis = "家用笔记本电脑的首选,价格低廉,坚固耐用";ta.setText(dis);}else if(info.equals("ThinkPad")) {String dis = "商用笔记本电脑的首选,安全稳定,性能出色";ta.setText(dis);}else {String dis = "游戏用户的笔记本电脑首选,显卡高端,方便便携,经济实用,稳定出色";ta.setText(dis);}}}import java.awt.*;public class T7_11 {public static void main(String [] args) {new MyComponent("组件的前、背景色");}}class MyComponent extends Frame {Button btn;Label label;TextField tf;TextArea ta;MyComponent(String s) {super(s);setLayout(new GridLayout(2,2));btn = new Button("Button");btn.setBackground(Color.red);btn.setForeground(Color.yellow);add(btn);label = new Label("Label",1);label.setBackground(Color.green);label.setForeground(Color.black);add(label);tf = new TextField("TextField",10);tf.setBackground(Color.yellow);tf.setForeground(Color.darkGray);add(tf);ta = new TextArea("TextArea");ta.setBackground(Color.blue);ta.setForeground(Color.white);add(ta);pack();setVisible(true);}}import java.awt.*;import java.awt.event.*;public class T7_12 {public static void main(String [] args) {MyFrame1 mf = new MyFrame1("移动");}}class MyFrame1 extends Frame implements ActionListener { Button btn_L,btn_M;MyFrame1(String s) {super(s);setLayout(null);btn_L = new Button("移动按钮");btn_M = new Button("Moving!");btn_L.setLocation(10,30);btn_L.setSize(100,30);btn_M.setLocation(150,30);btn_M.setSize(50,20);btn_L.addActionListener(this);add(btn_L);add(btn_M);setBounds(0,100,510,400);setVisible(true);}public void actionPerformed (ActionEvent e) { Point p = btn_M.getLocation();p.x += 1;p.y += 1;btn_M.setLocation(p);}}import java.awt.*;import java.awt.event.*;public class T7_13 {public static void main(String [] args) { new MyFrame("改变圆形颜色");}}class MyCanvas extends Canvas {int x,y,r;Color c = Color.yellow;MyCanvas() {x = 200;y = 200;r = 50;setBackground(Color.yellow);}public void setC(Color c) {this.c = c;}public void paint(Graphics g) {Color old = g.getColor();g.setColor(c);g.fillOval(x,y,2*r,2*r);g.setColor(old);}}class MyFrame extends Frame implements ActionListener { Button btn_red,btn_blue,btn_green;MyCanvas can;MyFrame(String s) {super(s);setLayout(null);btn_red = new Button(" 红");btn_red.setBackground(Color.red);btn_red.setForeground(Color.white);btn_green = new Button(" 绿");btn_green.setBackground(Color.green);btn_green.setForeground(Color.white);btn_blue = new Button(" 蓝");btn_blue.setBackground(Color.blue);btn_blue.setForeground(Color.white);btn_red.setSize(50,30);btn_green.setSize(50,30);btn_blue.setSize(50,30);btn_red.setLocation(20+135,40); btn_green.setLocation(90+135,40); btn_blue.setLocation(160+135,40);btn_red.addActionListener(this); btn_green.addActionListener(this); btn_blue.addActionListener(this);add(btn_red);add(btn_green);add(btn_blue);can = new MyCanvas();can.setBounds(0,80,510,510);add(can);Canvas c = new Canvas();c.setBackground(Color.orange);c.setBounds(0,0,510,80);add(c);setVisible(true);setBounds(50,50,500,580);setResizable(false);}public void actionPerformed(ActionEvent e) { Object obj = e.getSource();if(obj == btn_red) {can.setC(Color.red);can.repaint();}else if(obj == btn_green) {can.setC(Color.green);can.repaint();}else {can.setC(Color.blue);can.repaint();}}}。

java2实用教程(第三版)第五章习题答案(耿祥义)

java2实用教程(第三版)第五章习题答案(耿祥义)

public static void main(String [] args) { //已定义好的字符串变量String s = "Hello World !";System.out.println(s);s = s.toUpperCase();System.out.println(s);s = s.toLowerCase();System.out.println(s);//通过键盘输入字符串/*System.out.println(args[0]);args[0] = args[0].toUpperCase();System.out.println(args[0]);args[0] = args[0].toLowerCase();System.out.println(args[0]);*/ }}public static void main(String [] args) {//通过键盘输入两个字符串,在java时注意在敲入java StringCat时在后面加上两个字符串。

eg.java StringCat "Hello " "China";/*System.out.println("string1 :"+args[0]);System.out.println("string2 :"+args[1]);args[0] = args[0].concat(args[1]);System.out.println("concat string :"+args[0]);*///已定义的字符串String s1 = "Hello ";String s2 = "China!";System.out.println("s1 = "+s1);System.out.println("s2 = "+s2);s1 = s1.concat(s2);System.out.println("concat....");System.out.println("s1 = "+s1);System.out.println("s2 = "+s2);}}public static void main(String [] args) {String s = "中国科学技术大学";char a = s.charAt(2),b = s.charAt(6);System.out.print(a);System.out.println(b);}}import java.util.*;public class T5_4 {public static void main(String [] args) {int [] a = {23,67,89,90,-987};double [] b = {12.89,90.87,34,678.987,-98.78,0.89};Arrays.sort(a);Arrays.sort(b,1,4);for(int i=0;i<=4;i++) {System.out.print(a[i]+",");}System.out.println();for(int i=0;i<b.length;i++) {System.out.print(b[i]+",");}System.out.println();}}public class T5_5 {public static void main(String [] args) {char [] a1 = {'a','b','c','d','e','f'},b1 = {'1','2','3','4','5','6'};System.arraycopy(a1,0,b1,1,a1.length-1);System.out.println(new String(a1));System.out.println(new String(b1));byte [] a2 = {97,98,99,100,101,102},b2 = {65,67,68,69,70,71};System.arraycopy(b2,0,a2,3,b2.length-3);System.out.println(new String(a2));System.out.println(new String(b2));}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章类、对象和接口1. 类中的实例变量在什么时候会被分配内存空间?答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。

2. 什么叫方法的重载?构造方法可以重载吗?答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。

②构造方法可以重载。

3. 类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?答:①类中的实例方法可以操作类变量。

②类方法不可以操作实例变量4. 类中的实例方法可以用类名直接调用吗?答: 类中的实例方法不可以用类名直接调用。

5. 举例说明protected方法和友好方法的区别。

答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。

6. 举例说明类变量和实例变量的区别。

答:⑴书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。

例: class A{int x; //实例变量static int y; //类变量}⑵内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。

不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。

任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。

一个对象的实例变量发生改变,不影响其他对象的相应实例变量。

例: 执行语句: A1.x=10; A1.y=20;这时A2.x的值也是10;而A2.y的值保持原来的初值。

⑶使用: 类变量可以被类方法操作;而实例变量不能被类方法操作。

例: class A{int x;static int y;static void func(){b=10; //合法a=20; //非法}}类变量可以通过类名访问;实例变量不能通过类名访问。

例: class A{int x;static int y;}class B{public void func();{A.x=10; //非法A.y=20; //合法}}7. 子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?在子类中是否允许有一个方法和父类的方法名字相同,而类型不同?答:①子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类与父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。

②子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量;子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,子类就隐藏从父类继承来的方法(方法的重写)。

③在子类中允许有一个方法和父类的方法名字相同而类型不同。

8. 父类的final方法可以被子类重写吗?答: 父类的final方法不能被子类重写。

9. 什么类中可以有abstract方法?答: abstract类中可以有abstract方法。

10.什么叫对象的上转型对象?答: B类是A类的子类或间接子类,当用子类B创建一个对象b并把这个对象的引用放到A类的对象a中时,称A类对象a是子类对象b的上转型对象。

11.什么叫接口的回调?答: 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。

12.下列程序有什么错误?public class Takecare{int a=90;static float b=10.98f;public static void main(String args[]){float c=a+b;System.out.println("c="+c);}}答: 语句float c=a+b;错误。

原因是类方法main操作了实例变量a。

13. 请写出下列程序的输出结果。

class A{public int f(int x){return x+1;}}class B extends A{public int f(int x){return x*x;}}public class E{public static void main(String args[]){A a=new B();int m=a.f(10);System.out.println(m);}}答: 10014. 请写出下列程序的输出结果。

class A{int x;public void setX(int x){this.x=x;}int getX(){return x;}class B{public void f(A a){a.setX(100);}}public class E{public static void main(String args[]){A a=new A();a.setX(8);System.out.println(a.getX());B b=new B();b.f(a);System.out.println(a.getX());}}答: 810015.使用接口有哪些注意事项?模仿例子4.27,编写一个类实现两个接口的程序。

答:①一个类使用接口时,要有implements关键字,当一个类使用多个接口时,接口名要用逗号“,”隔开;使用接口的类除abstract类外,必须实现接口的所有方法,并且实现接口的方法时,方法名字、返回类型、参数个数及类型必须与接口中的完全一致;类在实现接口时,方法体一定要用public修饰,如果接口方法的返回类型不是void型,在类中实现接口时,方法体至少有一个return语句。

② interface 表面积{double allArea(double r);}interface 体积{double volu(double r);}class Sph implements 表面积,体积{double PI=3.14159;public double allArea(double r){return 4*PI*r*r;}public double volu(double r){return 4.0/3*PI*r*r*r;}}public class Test{public static void main(String args[]){double r=5.0;Sph a=new Sph();System.out.println("半径为5的球的表面积是:"+a.allArea(r));System.out.println("半径为5的球的体积是:"+a.volu(r));}}16.编写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后再编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且调用子类新增的方法g输出希腊字母表。

答: class A{int m;void f(){for(m=65;m<91;m++)System.out.print((char)m+" ");for(m=97;m<123;m++)System.out.print((char)m+" ");System.out.println(" ");}}class B extends A{int i;void g(){for(i=913;i<930;i++)System.out.print((char)i+" ");for(i=931;i<938;i++)System.out.print((char)i+" ");for(i=945;i<962;i++)System.out.print((char)i+" ");for(i=963;i<970;i++)System.out.print((char)i+" ");System.out.println(" ");}}public class Test{public static void main(String args[]){B b=new B();System.out.println("我调用方法f输出英文字母表:");b.f();System.out.println("我调用方法g输出希腊字母表:");b.g();}}17.编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法public void speak(int m) throws MyException,要求参数m的值大于1000时,方法抛出一个MyException对象。

最后编写主类,在主类的main方法中用Student创建一个对象,让该对象调用speak方法。

答: class MyException extends Exception{String str1;MyException(int m){str1=m+"出现错误可能造成的原因是取值大于1000";}public void showStr1(){System.out.println(str1);}}class Student{public void speak(int m) throws MyException{if(m>1000){MyException exception=new MyException(m);throw exception;}elseSystem.out.println(m);}}public class Test{public static void main(String agrs[]){int m;Student stu1=new Student();m=987;try{stu1.speak(m);m=1234;stu1.speak(m);}catch(MyException e){e.showStr1();}}}18.编写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数。

然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数。

要求在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回。

要求在应用程序的主类中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。

相关文档
最新文档