JAVA大学实用教程(第3版)课后习题答案.doc
java2实用教程课后习题答案(第三版编程题)
3. 编写应用程序,求1!+2!+…+10!。
答:class Fact{public static void main(String args[]){int fact,sum=0;for(int i=1;i<=10;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=fact;}System.out.println("1到10的阶乘之和是:"+sum);}}4. 编写一个应用程序,求100以内的全部素数。
答:class Primes{ public static void main(String args[]){ int w=1;for(int i=2;i<=100;i++){ for(int j=2;j<i;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循环class Sum{public static void main(String args[]){int fact;double sum=0;for(int i=1;i<=20;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=1.0/fact;}System.out.println(sum);}}②do―while循环class Sum{public static void main(String args[]){int i=1;int fact;double sum=0;do{fact=1;int j=0;while(++j<=i)fact*=j;sum+=1.0/fact;}while(++i<=20);System.out.println(sum);}}6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
JAVA程序设计实用教程课后习题简答(第3版)
if (n>0)
{
table = new int[n];
for (int i=0;i<n;i++)
table[i] = i+1;
permute(n);
}
else
table = null;
}
private void output()//输出数组元素
{
for (int i=0;i<table.length;i++)
2.实例成员方法与类成员方法
(1)两者声明时的差别。当一个类声明成员方法时,没有使用关键字static声明的为实例成员方法,使用关键字static声明的为类成员方法。
(2)两者方法体中语句的差别。类成员方法只能访问类成员变量;实例成员方法既可以访问类成员变量,也可以访问实例成员变量。在实例成员方法体中,可以使用this引用指代当前对象;而在类成员方法体中,则不能使用this引用。
3-8 this引用有什么作用?this引用有几种使用方法?
【答】Java类中成员方法与C语言中函数还有一个重要差别就是,Java类中每个成员方法都可以使用代词this引用调用该方法的当前对象自己,this引用有以下3种用法:
(1)this用于指代调用成员方法的当前对象自身,语法格式如下:
this
(2)通过this可以调用当前对象的成员变量,调用当前对象的成员方法。语法格式如下:
super.成员变量
(2)子类覆盖父类成员时,如需要访问父类同名成员方法时,需要使用supper指代父类的同名成员方法。语法如下:
super.成员方法([参数列表])
注意:super引用不能像this引用一样单独使用。
3-14什么是多态性?什么是方法的重载?方法的重载和覆盖有何区别?
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。
java基础教程第3版习题解答.doc
不可以。
4.匿名类一定是内部类吗?
一定是。
5.请说出下列程序的输出结果。
大家好,祝工作顺利!
6.请说出下列程序的输出结果。
D是接口变景
7.请说出下列程序的输出结果。
你好fine。
2.4和3。
3.false和true。
4.负数°
5.是true。
6.3和-1。
7.会发生NumberFormatExcept ion异常。
8.苹果
9
10.public class E {
public stat ic void main (String args [ ]) { String sl,s2, tl=,,ABCDabcdv;
sl=t1. toUpperCase0;
char cStart=s. charAt (0);
char cEnd = s・ charAt (s・ 1 ength ()-1);
System・ out・ print In (cStart); System. out・ println(cEnd);
)
}
12.import java .util.*;
b=24;
c=Math. as in (0. 56);
System・ out. print In (c);
c=Ma th. cos (3. 14);
System. oul. print In (c);
c=Ma th. exp (1);
System. oul. print In (c);
c=Math. log(8);
{ public static void main (String args []) { double sum=0, a=l;
Java大学实用教程课后答案
Java大学实用教程课后答案第一章1.发明java的原因是什么,发明java的主要贡献者是谁?答:开发java语言的动力源于对独立平台的需要,即用这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况。
当时,c语言已无法满足人们的这一愿望,因为c语言总是针对特定的芯片将源程序编译成机器码,该机器码的运行就与特定的芯片指令有关,在其他类型的芯片上可能无法运行或者运行出错。
主要贡献者是James Gosling。
2.“java编译器将源文件编译生成的字节码是机器码”,这句话正确吗?答:不正确,字节码是很接近机器码的二进制文件,不能被机器直接识别。
3. java应用程序的主类必须含有怎么样的方法?4. "java应用程序必须有一个类是public类".这句话正确吗?答:一个java应用程序必须有一个类含有public static void main(String args[] )方法,称为该应用程序的主类。
5. "java applet程序的主类必须是public类",这句话正确吗?不正确"java applet源文件的主类必须是public类",这句话正确吗?正确6. 叙述java源文件的命名法则。
答:(1)如果源文件中有多个类,那么只能有一个类是public类。
(2)如果有一个类是public类,那么源文件的名字必须和这个类的名字完全相同,扩展名为.java(3)如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名为.java就可以了。
(4)java 语言区分大小写。
7. 源文件生成的的字节码运行时加载到内存中吗?8. 怎样编写加载运行java applet的简单网页?9. JDK1.6编译器使用"-source"参数的作用是什么,其默认的参数取值是什么?答:在编译源文件时使用"-source"参数来约定字节码适合的java 平台。
java2实用教程课后习题答案(第三版编程题)
3. 编写应用程序,求1!+2!+…+10!。
答:class Fact{public static void main(String args[]){int fact,sum=0;for(int i=1;i<=10;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=fact;}System.out.println("1到10的阶乘之和是:"+sum);}}4. 编写一个应用程序,求100以内的全部素数。
答:class Primes{ public static void main(String args[]){ int w=1;for(int i=2;i<=100;i++){ for(int j=2;j<i;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循环class Sum{public static void main(String args[]){int fact;double sum=0;for(int i=1;i<=20;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=1.0/fact;}System.out.println(sum);}}②do―while循环class Sum{public static void main(String args[]){int i=1;int fact;double sum=0;do{fact=1;int j=0;while(++j<=i)fact*=j;sum+=1.0/fact;}while(++i<=20);System.out.println(sum);}}6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
Java实用教程课后习题章答案最终
习题一第1章一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件..2)使用javac编译源文件;得到字节码文件..3)使用解释器运行程序..3.由类所构成;应用程序必须有一个类含有public static void mainString args方法;含有该方法的类称为应用程序的主类..不一定;但最多有一个public类..4.Path设置为:以安装的版本为例..ClassPath设置为:set classpath=D:\jdk\jre\lib\rt.jar;.;5. .java和.class6. java Bird7.独行风格大括号独占行和行尾风格左大扩号在上一行行尾;右大括号独占行二、选择题1.B..2.D..三、阅读程序1.aPerson.java..b两个字节码;分别是Person.class和Xiti.class..c 得到“NoSuchMethodError”;得到“NoClassDefFoundError: Xiti/class”;得到“您好;很高兴认识您 nice to meet you”习题二第2章一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符..标识符由字母、下划线、美元符号和数字组成;第一个字符不能是数字..false不是标识符..2.关键字就是Java语言中已经被赋予特定意义的一些单词;不可以把关键字作为名字来用..不是关键字..class implements interface enum extends abstract..3.boolean;char;byte;short;int;long;float;double..4.float常量必须用F或f为后缀..double常量用D或d为后缀;但允许省略后缀..5.一维数组名.length..二维数组名.length..二、选择题1.C..2.ADF..3.B..4.BE..5.代码2代码3代码4代码5..6.B..三、阅读或调试程序1.低住佐佑佒体占何佖佗佘余佚佛作佝佞佟你佡佢2.答案是:234<468我输出结果后不回车我输出结果后自动回车到下一行x+y= 6663.属于操作题;解答略..4.代码1:4..代码2:b0=1..5.代码1:40..代码2:7四、编写程序1. public class E {public static void mainString args {你';我';他';}}2. public class E {public static void main String args { char cStart='α';cEnd='ω';forchar c=cStart;c<=cEnd;c++}}习题三第3章一、问答题1.boolean2.不可以3.boolean4. 不是必须的5.结束while语句的执行6.可以二、选择题1.A.. 2.C.. 3.C..三、阅读程序1.你;苹;甜2.Jeep好好3.x=-5;y=-1四、编程序题1.public class jiecheng {public static void mainString args { double sum=0;a=1;int i=1;whilei<=20 {sum=sum+a;i++;a=ai;}}}2.public class sushu {public static void mainString args { int i;j;forj=2;j<=100;j++ {fori=2;i<=j/2;i++ {ifj%i==0break;}ifi>j/2 {}}}}3.class qiuhe {public static void mainString args { double sum=0;a=1;i=1;do { sum=sum+a;i++;a=1.0/ia;}whilei<=20;使用do-while循环计算的sum="+sum;forsum=0;i=1;a=1;i<=20;i++ {a=a1.0/i;sum=sum+a;}使用for循环计算的sum="+sum;}}4.public class wanshu {public static void mainString args {int sum=0;i;j;fori=1;i<=1000;i++ {forj=1;sum=0;j<i;j++ {ifi%j==0sum=sum+j;}ifsum==i完数:"+i;}}}5.public class Xiti5 {public static void mainString args {int m=8;item=m;i=1;long sum=0;fori=1;sum=0;item=m;i<=10;i++ {sum=sum+item;item=item10+m;}}}6.public class Xiti6 {public static void mainString args { int n=1;long sum=0;whiletrue {sum=sum+n;n++;ifsum>=8888break;}满足条件的最大整数:"+n-1;}}习题四第4章一、问答题1. 封装、继承和多态..2.当类名由几个单词复合而成时;每个单词的首字母使用大写..3.名字的首单词的首字母使用小写;如果变量的名字由多个单词组成;从第2个单词开始的其它单词的首字母使用大写..4.属性5.行为6.用类创建对象时..没有类型7.用类创建对象时..8.一个类中可以有多个方法具有相同的名字;但这些方法的参数必须不同;即或者是参数的个数不同;或者是参数的类型不同..可以..9.可以..不可以..10.不可以..11.一个类通过使用new运算符可以创建多个不同的对象;不同的对象的实例变量将被分配不同的内存空间..所有对象的类变量都分配给相同的一处内存;对象共享类变量..12.代表调用当前方法的对象..不可以..二、选择题1.B..2.D..3.D..4.D..5.CD..6.代码1代码4..7.代码4..三、阅读程序1.代码1:1;代码2:121;代码3:121..2.sum=-100..3. 27..4.代码1:100;代码2:20.0..5.上机实习题目;解答略..6.上机实习题目;解答略..四、编程题CPU.javapublic class CPU {int speed;int getSpeed {return speed;}public void setSpeedint speed {this.speed = speed;}}HardDisk.javapublic class HardDisk {int amount;int getAmount {return amount;}public void setAmountint amount { this.amount = amount;}}PC.javapublic class PC {CPU cpu;HardDisk HD;void setCPUCPU cpu {this.cpu = cpu;}void setHardDiskHardDisk HD { this.HD = HD;}void show{速度:"+cpu.getSpeed;硬盘容量:"+HD.getAmount;}}Test.javapublic class Test {public static void mainString args {CPU cpu = new CPU;HardDisk HD=new HardDisk;cpu.setSpeed2200;HD.setAmount200;PC pc =new PC;pc.setCPUcpu;pc.setHardDiskHD;pc.show;}}习题五第5章一、问答题1.不可以..2.是..3.不继承..4.声明与父类同名的成员变量..5.子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型;重写的方法的名字、参数个数、参数的类型和父类的方法完全相同..重写方法的目的是隐藏继承的方法;子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为..6.不可以..7.Abstract类..8.上转型对象不能操作子类新增的成员变量;不能调用子类新增的方法..上转型对象可以访问子类继承或隐藏的成员变量;可以调用子类继承的方法或子类重写的实例方法..9.通过重写方法..10.面向抽象编程目的是为了应对用户需求的变化;核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责;从而让该类的设计者不去关心具体实现..二、选择题1.C..2.D..3.CD..4.D..5.B..6.B..7.D..8.B..9.A..三、阅读程序1.代码1:15.0..代码2:8.0..2.代码1:11..代码2:110..3.代码1:98.0..代码2:12..代码3:98.0..代码4:9..4.代码1:120..代码2:120..代码3:-100..四、编程题Animal.javapublic abstract class Animal {public abstract void cry;public abstract String getAnimalName;}Simulator.javapublic class Simulator {public void playSoundAnimal animal {现在播放"+animal.getAnimalName+"类的声音:";animal.cry;}}Dog.javapublic class Dog extends Animal {public void cry {汪汪...汪汪";}public String getAnimalName {return "狗";}}Cat.javapublic class Cat extends Animal {public void cry {喵喵...喵喵";}public String getAnimalName {return "猫";}}Application.javapublic class Example5_13 {public static void mainString args {Simulator simulator = new Simulator;simulator.playSoundnew Dog;simulator.playSoundnew Cat;}}习题六第6章一、问答题1.不能..2.不能..3.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中..那么该接口变量就可以调用被类实现的接口中的方法..4.不可以..5.可以..二、选择题1.D..2.AB..3.A..三、阅读程序1.代码1:15.0..代码2:8..2.代码1:18..代码2:15..四、编程题Animal.javapublic interface Animal {public abstract void cry;public abstract String getAnimalName;}Simulator.javapublic class Simulator {public void playSoundAnimal animal {现在播放"+animal.getAnimalName+"类的声音:";animal.cry;}}Dog.javapublic class Dog implements Animal {public void cry {汪汪...汪汪";}public String getAnimalName {return "狗";}}Cat.javapublic class Cat implements Animal {public void cry {喵喵...喵喵";}public String getAnimalName {return "猫";}}Application.javapublic class Example5_13 {public static void mainString args {Simulator simulator = new Simulator;simulator.playSoundnew Dog;simulator.playSoundnew Cat;}}习题七第7章一、问答题1.有效..2.可以..3.不可以..4.一定是..二、选择题1.C..2.C..三、阅读程序1.大家好;祝工作顺利2.p是接口变量..3.你好 fine thanks..4.属于上机实习程序;解答略..四、编程题import java.util.;public class E {public static void main String args {Scanner reader = new ScannerSystem.in;double sum = 0;int m = 0;whilereader.hasNextDouble{double x = reader.nextDouble;assert x< 100:"数据不合理";m = m+1;sum = sum+x;}个数的和为%f\n";m;sum;个数的平均值是%f\n";m;sum/m;}}习题八第8章一、问答题1.不是.."\\hello"是..2.4不存在空格是4存在空格是5和3..3.false和true..4.负数..5.是true..6.3和-1..7.会发生NumberFormatException异`常..二、选择题1.A..2.B..3.B..4.D..5.C..三、阅读程序1.代码:苹果..2.代码:Love:Game..3.代码1:15..代码2:abc我们..4.代码:13579..5.代码:9javaHello..6.属于上机实习程序;解答略..7.属于上机实习程序;解答略..四、编程题1.public class E {public static void main String args { String s1;s2;t1="ABCDabcd";s1=t1.toUpperCase;s2=t1.toLowerCase;String s3=s1.concats2;}}2. public class E {public static void main String args {String s="ABCDabcd";char cStart=s.charAt0;char cEnd = s.charAts.length-1;}}3. import java.util.;public class E {public static void main String args {int year1;month1;day1;year2;month2;day2;try{ year1=Integer.parseIntargs0;month1=Integer.parseIntargs1;day1=Integer.parseIntargs2;year2=Integer.parseIntargs3;month2=Integer.parseIntargs4;day2=Integer.parseIntargs5;}catchNumberFormatException e{ year1=2012;month1=0;day1=1;year2=2018;month2=0;day2=1;}Calendar calendar=Calendar.getInstance;calendar.setyear1;month1-1;day1;long timeYear1=calendar.getTimeInMillis;calendar.setyear2;month2-1;day2;long timeYear2=calendar.getTimeInMillis;long 相隔天数=Math.abstimeYear1-timeYear2/1000606024;年"+month1+"月"+day1+"日和"+year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天";}}4. import java.util.;public class E {public static void main String args {double a=0;b=0;c=0;a=12;b=24;c=Math.asin0.56;c=Math.cos3.14;c=Math.exp1;c=Math.log8;}}5.public class E {public static void main String args {String str = "ab123you你是谁 ";String regex = "\\D+";str = str.replaceAllregex;"";}}6. import java.util.;public class E {public static void mainString args {String cost = "数学87分;物理76分;英语96分";Scanner scanner = new Scannercost;double sum=0;int count =0;whilescanner.hasNext{try{ double score = scanner.nextDouble;count++;sum = sum+score;}catchInputMismatchException exp{String t = scanner.next;}}总分:"+sum+"分";平均分:"+sum/count+"分"; }}。
java3课后习题答案
java3课后习题答案Java3课后习题答案在学习Java3课程后,我们经常会遇到一些习题,这些习题旨在帮助我们巩固所学的知识,并提高我们的编程能力。
在这篇文章中,我们将为大家总结一些Java3课后习题的答案,希望能够帮助大家更好地理解和掌握Java编程。
1. 编写一个Java程序,计算并输出1到100之间所有偶数的和。
```javapublic class SumOfEvenNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}System.out.println("1到100之间所有偶数的和为:" + sum);}}```2. 编写一个Java程序,找出一个整数数组中的最大值和最小值。
```javapublic class MaxMinInArray {public static void main(String[] args) {int[] array = {5, 3, 9, 1, 7, 4};int max = array[0];int min = array[0];for (int i = 1; i < array.length; i++) {if (array[i] > max) {max = array[i];}if (array[i] < min) {min = array[i];}}System.out.println("数组中的最大值为:" + max);System.out.println("数组中的最小值为:" + min);}}```3. 编写一个Java程序,实现一个简单的计算器,能够进行加减乘除运算。
java程序设计第三版课后答案
java程序设计第三版课后答案Java程序设计第三版课后答案在编写Java程序设计第三版的课后答案时,我们首先需要了解这本书的结构和内容。
通常,一本好的教科书会包含理论讲解、示例代码、练习题和课后习题。
课后习题是帮助学生巩固和应用所学知识的重要部分。
以下是一些可能的课后答案示例,但请注意,具体答案需要根据实际的习题来编写。
第一章:Java基础问题1:简述Java语言的特点。
答案:Java是一种面向对象的编程语言,具有跨平台性、健壮性、安全性、简单性、多线程和动态性等特点。
它的跨平台性主要得益于Java虚拟机(JVM)的存在,使得Java程序可以在任何安装有JVM的设备上运行。
Java的健壮性体现在其严格的类型检查和异常处理机制。
安全性则体现在其对内存的自动管理以及对网络编程的内置支持。
问题2:编写一个Java程序,输出“Hello, World!”。
答案:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```第二章:数据类型和运算符问题1:Java中的基本数据类型有哪些?答案:Java中的基本数据类型包括整型(byte, short, int, long),浮点型(float, double),字符型(char)和布尔型(boolean)。
问题2:编写一个Java程序,实现两个整数的加法,并输出结果。
答案:```javapublic class IntegerAddition {public static void main(String[] args) {int number1 = 5;int number2 = 10;int sum = number1 + number2;System.out.println("The sum is: " + sum);}}```第三章:控制流程问题1:Java中有哪些控制流程语句?答案:Java中的控制流程语句包括条件语句(if, switch),循环语句(for, while, do-while)以及跳转语句(break, continue, return)。
java大学实用教程(第三版)课后答案
习题解答第一章作业题1.public class Hello{public static void main (String args[ ]){System.out.pintln(“早上好,good Morning”);}}2.import java.applet.*;import java.awt.*;public class Boy extends Applet {public void paint(Graphics g) {g.setColor(Color.blue);g.drawString("你好,hello",12,30);}}第二章作业题1.public class ZuoYe2_1{public static void main (String args[ ]){char c='а';System.out.println("字母"+c+"在unicode表中的顺序位置:"+(int)c);System.out.println("字母表:");while(c<='я'){System.out.print(" "+c);c=(char)(c+1);}}}2.import java.util.*;public class ZuoYe2_2{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);long chengji=1;int m=0;while(reader.hasNextInt()){int x=reader.nextInt();m=m+1;chengji=chengji*x;}System.out.println(m+"个数的乘积为"+chengji);}}第三章作业题1.import java.util.*;public class ZuoYe3_1{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);double y=0,x=0;x=reader.nextDouble();if(x<0)y=-1+2*x;else if(x==0)y=-1;else if(x>0)y=-1+3*x;System.out.println(y);}}2.public class ZuoYe3_2{public static void main(String args[]){int sum=0,m=3,n=7,a=1;while(a<=1000){if(a%m==0&&a%n==0)sum=sum+a;a++;}System.out.println("sum="+sum);}}3.public class ZuoYe3_3{public static void main(String args[]){long sum=0,a=8,item=a,n=10,i=1;for(i=1;i<=n;i++){ sum=sum+item;item=item*10+a;}System.out.println(sum);}}4.public class ZuoYe3_4{public static void main(String args[]){double sum=0,a=1,b=1,fuhao=1,item=a/b;int i=1;while(i<=1000){sum=sum+fuhao*item;i++;fuhao=fuhao*(-1);b=b+2;item=a/b;}System.out.println("sum="+sum);}}5.public class ZuoYe3_5{public static void main(String args[]){double sum=0,a=1;int i=1;while(i<=20){if(i>=10)sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}8.第四章作业题1.class DengCha{int start,d;DengCha(){}DengCha(int start,int d){this.start=start;this.d=d;}void setStart(int s){start=s;}void setD(int d){this.d=d;}int getSum(int n){int sum=0,i=1;while(i<=n){sum=sum+start;start=start+d;i++;}return sum;}}public class ZuoYe4_1{public static void main (String args[ ]){DengCha shulie=new DengCha(2,3);System.out.println(shulie.getSum(100));shulie.setStart(10);shulie.setD(5);System.out.println(shulie.getSum(9)); }}2.class Letter{public void printLetter(){for(char c='a';c<='z';c++)System.out.print(" "+c);}}public class ZuoYe4_2{public static void main (String args[ ]){Letter p=new Letter();p.printLetter();}}3.class SquareEquation{double a,b;static double c;double root1,root2;boolean boo;public SquareEquation(double a,double b,double c){this.a=a;this.b=b;SquareEquation.c=c;if(a!=0){boo=true;}else{boo=false;}}public void getRoots(){if(boo){System.out.println("是一元2次方程");double disk=b*b-4*a*c;if(disk>=0){root1=(-b+Math.sqrt(disk))/(2*a);root2=(-b-Math.sqrt(disk))/(2*a);System.out.printf("方程的根:%f,%f\n",root1,root2);}else{System.out.printf("方程没有实根\n");}}else{System.out.println("不是一元2次方程");}}public void setCoefficient(double a,double b,double c){ this.a=a;this.b=b;SquareEquation.c=c;if(a!=0){boo=true;}else{boo=false;}}}public class ZuoYe4_3{public static void main(String args[ ]){SquareEquation equation1=new SquareEquation(4,5,1);SquareEquation equation2=new SquareEquation(3,5,-7);equation1.getRoots();equation2.getRoots();}}4.import java.util.Scanner;class A{int f(int m,int n){if(m*n<0){ System.out.println("有负数,程序退出");System.exit(0);}if(m<n){ int temp=m;m=n;n=temp;}int a=m,b=n;int r=m%n;while(r!=0){ m=n;n=r;r=m%n;}return n;}}class B{A a;B(){a=new A();}int g(int m,int n){int temp=a.f(m,n);return m*n/temp;}}public class ZuoYe4_4{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);System.out.println("输入2个正整数,程序计算出它们的最大公约数和最小公倍数");System.out.print("输入第一个整数:");int m=reader.nextInt();System.out.print("输入第二个整数:");int n=reader.nextInt();A a=new A();B b=new B();System.out.println(m+"和"+n+"的最大公约数是"+a.f(m,n));System.out.println(m+"和"+n+"的最小公倍数是"+b.g(m,n));}}5.import java.applet.Applet;import java.awt.*;public class Example4_10 extends Applet{Button redbutton;public void init(){redbutton=new Button("我是一个红色的按钮");redbutton.setBackground(Color.red);redbutton.setForeground(Color.white);add(redbutton);}}第五章作业题1.import java.util.Scanner;class A{public int f(int m,int n){if(m<n){int temp=m;m=n;n=temp;}int r=m%n;while(r!=0){m=n;n=r;r=m%n;}return n;}}class B extends A{public int f(int m,int n){int division=super.f(m,n);return (m*n)/division;}}public class ZuoYe5_1{public static void main (String args[ ]){A a=new A();B b=new B();Scanner reader=new Scanner(System.in);System.out.println("输入2个整数,程序计算出它们的最大公约数和最小公倍数");System.out.print("输入第一个整数:");int m=reader.nextInt();System.out.print("输入第二个整数:");int n=reader.nextInt();if(m*n<0){ System.out.println("有负数,程序退出");System.exit(0);}System.out.printf("%d和%d的最大公约数是%d\n",m,n,a.f(m,n));System.out.printf("%d和%d的最小公倍数是%d\n",m,n,b.f(m,n));}}2.abstract class A{public abstract void f(int x);public abstract void g(int x,int y);public abstract double h(double x); }class A1 extends A{public void f(int x){System.out.println(x);}public void g(int x,int y){int z=x+y;System.out.println(z);}public double h(double x){return x*x;}}class A2 extends A{public void f(int x){System.out.println("Hello:"+x);}public void g(int x,int y){int z=x-y;System.out.println(z);}public double h(double x){return Math.sqrt(x);}}class A3 extends A{public void f(int x){System.out.println("你好:"+x);}public void g(int x,int y){double z=(double)x/y;System.out.println(z);}public double h(double x){return 1/x;}}public class ZuoYe5_2{public static void main(String args[ ]){A a=new A1();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A2();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A3();a.f(10);a.g(12,20);System.out.println(a.h(100));}}3.interface A{public abstract void f(int x);public abstract void g(int x,int y);public abstract double h(double x); }class A1 implements A{public void f(int x){System.out.println(x);}public void g(int x,int y){int z=x+y;System.out.println(z);}public double h(double x){return x*x;}}class A2 implements A{public void f(int x){System.out.println("Hello:"+x);}public void g(int x,int y){int z=x-y;System.out.println(z);}public double h(double x){return Math.sqrt(x);}}class A3 implements A{public void f(int x){System.out.println("你好:"+x);}public void g(int x,int y){double z=(double)x/y;System.out.println(z);}public double h(double x){return 1/x;}}public class ZuoYe5_3{public static void main(String args[ ]){A a=new A1();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A2();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A3();a.f(10);a.g(12,20);System.out.println(a.h(100));}}4.class Cubic{ double getCubic(int n){ return 0;}}abstract class Sqrt{ public abstract double getSqrt(int x); }class A{ void f(Cubic cubic){ double result=cubic.getCubic(3);System.out.println(result);}}public class ZuoYe5_4{ public static void main(String args[]){ A a=new A();a.f(new Cubic(){ double getCubic(int n){ return n*n*n;}});Sqrt ss=new Sqrt(){ public double getSqrt(int x){ return Math.sqrt(x);}};double m=ss.getSqrt(5);System.out.println(m);}}5.class IntegerException extends Exception{ String message;IntegerException(int m){ message="年龄"+m+"不合理";}public String toString(){ return message;}}class People{ private int age=1;public void setAge(int age) throws IntegerException{if(age>=160||age<=0)throw new IntegerException(age); //方法抛出异常,导致方法结束elsethis.age=age;}public int getAge(){ System.out.println("年龄"+age+"合理");return age;}}public class ZuoYe6_5{ public static void main(String args[]){ People wang=new People(),zhang=new People();try { wang.setAge(189);System.out.println(wang.getAge());}catch(IntegerException e){ System.out.println(e.toString());}try { zhang.setAge(28);System.out.println(zhang.getAge());}catch(IntegerException e){ System.out.println(e.toString());}}}第六章作业题1.import java.util.regex.*;import java.util.*;public class ZuoYe6_1{public static void main(String args[ ]){Scanner reader=new Scanner(System.in);String s1=reader.nextLine();Pattern p;Matcher m;p=pile("[24680]A[13579]{2}");m=p.matcher(s1);while(m.find()){String str=m.group();System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");System.out.println(str);}}}2.import java.util.regex.*;import java.util.*;public class ZuoYe4_1{public static void main(String args[ ]){Scanner reader=new Scanner(System.in);String s1=reader.nextLine();Pattern p;Matcher m;p=pile("\\d+");m=p.matcher(s1);while(m.find()){String str=m.group();System.out.print(str);}}}第七章作业题1.import java.util.*;public class ZuoYe7_2{ public static void main(String args[]){int year,month;try{year=Integer.parseInt(args[0]);month=Integer.parseInt(args[1])+1;}catch(NumberFormatException e){year=2004;month=1;}System.out.println(" 日一二三四五六");Calendar 日历=Calendar.getInstance();日历.set(year,month,1);int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;String a[]=new String[星期几+31];for(int i=0;i<星期几;i++){ a[i]="**";}for(int i=星期几,n=1;i<星期几+31;i++){ if(n<=9)a[i]=String.valueOf(n)+" ";elsea[i]=String.valueOf(n) ;n++;}for(int i=0;i<a.length;i++){ if(i%7==0){ System.out.println("");}System.out.print(" "+a[i]);}}}2.class ZuoYe7_2{ public static void main(String args[]){int year1,month1,day1,year2,month2,day2;try{year1=Integer.parseInt(args[0]);month1=Integer.parseInt(args[1]);day1=Integer.parseInt(args[2]);year2=Integer.parseInt(args[3]);month2=Integer.parseInt(args[4]);day2=Integer.parseInt(args[5]);}catch(NumberFormatException e){year1=2009;month1=0;day1=1;year2=2008;month2=0;day2=1;}Calendar calendar=Calendar.getInstance();calendar.set(year1,month1,day1);long timeYear1=calendar.getTimeInMillis();calendar.set(year2,month2,day2);long timeYear2=calendar.getTimeInMillis();long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天");}}3.import java.math.*;public class ZuoYe4_1{public static void main(String args[]){BigInteger chengji=new BigInteger("1"),ONE=new BigInteger("1"),i=ONE,m=new BigInteger("10");while(pareTo(m)<=0){chengji=chengji.multiply(i);i=i.add(ONE);}System.out.println(chengji);}}4.import java.util.*;public class ZuoYe7_4{public static void main(String args[]){HashSet<Integer> A=new HashSet<Integer>(),B=new HashSet<Integer>(),tempSet=new HashSet<Integer>();A.add(new Integer(1));A.add(new Integer(2));A.add(new Integer(3));A.add(new Integer(4));B.add(new Integer(1));B.add(new Integer(3));B.add(new Integer(7));B.add(new Integer(9));B.add(new Integer(11));tempSet=(HashSet<Integer>)A.clone();tempSet.retainAll(B);System.out.println("交:");Iterator<Integer> iter=tempSet.iterator();while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}tempSet=(HashSet<Integer>)A.clone();tempSet.addAll(B);iter=tempSet.iterator();System.out.println("并:");while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}tempSet=(HashSet<Integer>)A.clone();tempSet.removeAll(B);System.out.println("差:");iter=tempSet.iterator();while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}}}5.import java.util.*;class MyKey implements Comparable{double number=0;MyKey(double number){this.number=number;}public int compareTo(Object b){MyKey st=(MyKey)b;if((this.number-st.number)==0){return -1;}else{return (int)((this.number-st.number)*1000);}}}class 硬盘{int size;double price;硬盘(int n, double p){size=n;price=p;}}public class ZuoYe4_1{public static void main(String args[ ]){int [] size={10,3,7,12,10,22,100,4,6,2};double [] price={1.2,9.56,2.4,9.3,16.77,12.66,7.4,5.5,5.6,8.9,1.9};硬盘[] s=new 硬盘[10];for(int i=0;i<s.length;i++)s[i]=new 硬盘(size[i],price[i]);TreeMap<MyKey,硬盘> treemap=new TreeMap<MyKey,硬盘>();for(int i=0;i<s.length;i++)treemap.put(new MyKey(s[i].size),s[i]);int number=treemap.size();System.out.println("树映射中有"+number+"个对象:");Collection<硬盘> collection=treemap.values();Iterator<硬盘> iter=collection.iterator();while(iter.hasNext()){硬盘te=iter.next();System.out.println(te.size+","+te.price);}treemap.clear();for(int i=0;i<s.length;i++)treemap.put(new MyKey(s[i].price),s[i]);number=treemap.size();System.out.println("树映射中有"+number+"个对象:");collection=treemap.values();iter=collection.iterator();while(iter.hasNext()){硬盘te=iter.next();System.out.println(te.size+","+te.price);}}}第八章作业题1.属于操作题目,省略2.参见例子8-23.参见例子8-34. 参见例子8-10第九章作业题1.import java.io.*;import java.awt.*;import java.awt.event.*;public class ZuoYe9_1{ public static void main(String args[]){ int b;byte tom[]=new byte[25];try{ File f=new File("Example.java");FileInputStream in=new FileInputStream(f);while((b=in.read(tom,0,25))!=-1){ String s=new String (tom,0,b);System.out.print(s);}in.close();}catch(IOException e){ System.out.println("File read Error"+e);}}}2.import java.io.*;import java.util.*;public class ZuoYe9_2{public static void main(String args[]){Scanner reader=new Scanner(System.in);int b;try{FileOutputStream writefile=new FileOutputStream("line.txt");int line=1,n=10;System.out.println("输入"+n+"行文本,并存入磁盘:");while(line<=n){String s=reader.nextLine();byte buffer[]=s.getBytes();writefile.write(buffer,0,buffer.length);line++;}writefile.close();}catch(IOException e){System.out.println("Error "+e);}}}3.import java.io.*;public class ZuoYe9_3{public static void main(String args[ ]){int n=-1;CharArrayWriter out=new CharArrayWriter();for(char c='а';c<='я';c++){out.write(c);}CharArrayReader in=new CharArrayReader(out.toCharArray());try{ while((n=in.read())!=-1){if(n%2==0){System.out.printf("\n");}System.out.printf("\t位置%d,字符\'%c\'",n,(char)n);}}catch(IOException e){}}}4.import java.io.*;import java.util.*;public class ZuoYe9_4{public static void main(String args[]){try{FileOutputStream fos=new FileOutputStream("jerry.dat");DataOutputStream out_data=new DataOutputStream(fos);Scanner reader=new Scanner(System.in);for(int i=1;i<=10;i++){int x=reader.nextInt();out_data.writeInt(x);}out_data.close();}catch(IOException e){}try{FileInputStream fis=new FileInputStream("jerry.dat");DataInputStream in_data=new DataInputStream(fis);for(int i=1;i<=10;i++){int m=in_data.readInt();System.out.print(" "+m);}in_data.close();}catch(IOException e){}}}5.import java.io.*;import java.util.*;class Student implements Serializable{String name ;int number;Student(String name,int number){=name;this.number=number;}}public class ZuoYe9_5{public static void main(String args[]){List<Student> list=new LinkedList<Student>();List<Student> cloneList=null;for(int k=1;k<=12;k++)list.add(new Student("I am "+k,k));try{ FileOutputStream fileOut=new FileOutputStream("a.txt");ObjectOutputStream objectOut=new ObjectOutputStream(fileOut);objectOut.writeObject(list);FileInputStream fileIn=new FileInputStream("a.txt");ObjectInputStream objectIn=new ObjectInputStream(fileIn);cloneList=(List)objectIn.readObject();}catch(Exception event){System.out.println(event);}Iterator iter=cloneList.iterator();while(iter.hasNext()){Student te=(Student)iter.next();System.out.println(te.number+","+);}}}import java.io.*;public class ZuoYe9_6{ public static void main(String args[]){File f=new File("Xiti12_6.java");try{ RandomAccessFile random=new RandomAccessFile(f,"rw");random.seek(0);long m=random.length();while(m>=0){ m=m-1;random.seek(m);int c=random.readByte();if(c<=255&&c>=0){ System.out.print((char)c);}else{ m=m-1; //一个汉字占2个字节random.seek(m);byte cc[]=new byte[2];random.readFully(cc);System.out.print(new String(cc));}}random.close();}catch(IOException ee){}}}5.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_5{ public static void main(String args[]){ ComputerFrame fr=new ComputerFrame();fr.setTitle("计算");}class ComputerFrame extends JFrame implements ActionListener { JTextField text1,text2,text3;JButton button1,button2,button3,button4;JLabel label;public ComputerFrame(){setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(10);text3=new JTextField(10);label=new JLabel(" ",JLabel.CENTER);label.setBackground(Color.green);add(text1);add(label);add(text2);add(text3);button1=new JButton("加");button2=new JButton("减");button3=new JButton("乘");button4=new JButton("除");add(button1);add(button2);add(button3);add(button4);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);setSize(400,320);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);validate();}public void actionPerformed(ActionEvent e){ double n;if(e.getSource()==button1){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1+n2;text3.setText(String.valueOf(n));label.setText("+");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button2){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1-n2;text3.setText(String.valueOf(n));label.setText("-");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button3){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1*n2;text3.setText(String.valueOf(n));label.setText("*");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button4){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1/n2;text3.setText(String.valueOf(n));label.setText("/");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}validate();}}6.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_6{ public static void main(String args[]){ new WindowPanel();}}class Mypanel extends JPanel implements ActionListener { JButton button;JTextField text;Mypanel(){ button=new JButton(" ");text=new JTextField(12);add(button);add(text);button.addActionListener(this);}public void actionPerformed(ActionEvent e){ String name=text.getText();if(name.length()>0)button.setText(name);validate();}}class WindowPanel extends JFrame{ Mypanel panel1,panel2;WindowPanel(){ panel1=new Mypanel();panel2=new Mypanel();panel1.setBackground(Color.red);panel2.setBackground(Color.blue);add(panel1,BorderLayout.SOUTH);add(panel2,BorderLayout.NORTH);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}7.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_7{ public static void main(String args[]){ new WindowColor();}}class WindowColor extends JFrame{ JButton button;JTextField text;JComboBox list;WindowColor(){ setLayout(new FlowLayout());button=new JButton("hello");button.setBackground(Color.pink);button.setForeground(new Color(12,26,200));text=new JTextField("how are you");text.setBackground(Color.yellow);text.setForeground(new Color(200,26,20));list=new JComboBox();list.addItem("Hello");list.addItem("Java");list.setBackground(Color.cyan);list.setForeground(new Color(100,100,100));add(list);add(button);add(text);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}8.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_8{ public static void main(String args[]){ MoveFrame f=new MoveFrame();f.setBounds(12,12,300,300);f.setVisible(true);f.setTitle("移动");f.validate();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}class MoveFrame extends JFrame implements ActionListener{ JButton controlButton,movedButton;public MoveFrame(){ controlButton=new JButton("单击我运动另一个按钮");controlButton.addActionListener(this);movedButton=new JButton();movedButton.setBackground(new Color(12,200,34));setLayout(null);add(controlButton);add(movedButton);controlButton.setBounds(10,30,180,30);movedButton.setBounds(100,100,20,20);}public void actionPerformed(ActionEvent e){ int x=movedButton.getBounds().x;int y=movedButton.getBounds().y;x=x+5;y=y+1;movedButton.setLocation(x,y);if(x>200){ x=100;y=100;}}}9.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E{ public static void main(String args[]){ JFrame fr=new JFrame();fr.add(new LP(),BorderLayout.CENTER);fr.setVisible(true);fr.setBounds(12,12,300,300);fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.validate();}}class LP extends JLayeredPane implements MouseListener,MouseMotionListener { JButton button[];JTextField text[];int x,y,a,b,x0,y0;LP(){ setLayout(new FlowLayout());button=new JButton[8];for(int k=0;k<button.length;k++){ button[k]=new JButton("用鼠标拖动我");add(button[k]);button[k].addMouseListener(this);button[k].addMouseMotionListener(this);}text=new JTextField[10];for(int k=0;k<text.length;k++){ text[k]=new JTextField("用鼠标拖动我");text[k].addMouseListener(this);add(text[k]);text[k].addMouseMotionListener(this);}addMouseMotionListener(this);}public void mousePressed(MouseEvent e){ Component com=null;com=(Component)e.getSource();setLayer(com,JLayeredPane.DRAG_LAYER);a=com.getBounds().x;b=com.getBounds().y;x0=e.getX(); //获取鼠标在事件源中的位置坐标y0=e.getY();}public void mouseReleased(MouseEvent e){ Component com=null;com=(Component)e.getSource();setLayer(com,JLayeredPane.DEFAULT_LAYER);Component component[]=this.getComponents();for(int k=0;k<component.length;k++){ Rectangle rect1=component[k].getBounds();Rectangle rect2=com.getBounds();if(rect1.intersects(rect2)&&com!=component[k]){ component[k].setVisible(false);//this.remove(component[k]);}}}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseClicked(MouseEvent e){}public void mouseMoved(MouseEvent e){}public void mouseDragged(MouseEvent e){ Component com=null;if(e.getSource() instanceof Component){ com=(Component)e.getSource();a=com.getBounds().x;b=com.getBounds().y;x=e.getX(); //获取鼠标在事件源中的位置坐标y=e.getY();a=a+x;b=b+y;com.setLocation(a-x0,b-y0);}}}10.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E{ public static void main(String args[]){ JFrame fr=new JFrame();fr.add(new MoveButton(),BorderLayout.CENTER);fr.setVisible(true);fr.setBounds(12,12,300,300);fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.validate();}}class MoveButton extends JLayeredPane implements KeyListener { JButton b[]=new JButton[8];int x,y;MoveButton(){ setLayout(new FlowLayout());for(int i=0;i<8;i++){ b[i]=new JButton(""+i);b[i].addKeyListener(this);add(b[i]);}}public void keyPressed(KeyEvent e){ int moveDistance=1;Component com=(Component)e.getSource();int x=(int)com.getBounds().x;。
Java实用教程(第三版)课后习题及答案
JAVA实用教程(第三版)课后习题参考答案第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属性): <applet code=你的小程序的字节码 width=200 height=300 codebase=C:\5000></applet>存放在另一个目录中。
[Java程序设计教程(第三版)课后习题答案
参考答案第1章1.Java语言有哪些主要特点?平台独立性安全性多线程网络化面向对象2.Java编程语言有哪四种不同的平台?Java 编程语言有四种平台:Java 标准版 (Java SE)、Java 企业版 (Java EE)、Java 微型版 (Java ME)和JavaFX。
所有 Java 都由 Java 虚拟机 (VM)和应用程序编程接口 (API) 组成。
Java虚拟机是一个用于特定硬件和软件平台的程序,它运行 Java 技术应用程序。
API 是一组软件组件,可用于创建其他软件组件或应用程序。
每个 Java平台都提供了一个虚拟机和一个API,这使得为该平台编写的应用程序可以在具有 Java编程语言所有优点的任何兼容系统上运行:平台独立性、功能强大、稳定性、易于开发和安全。
Java SE当大多数人想到 Java 编程语言时,他们会想到 Java SE API。
Java SE 的 API 提供了 Java 编程语言的核心功能。
它定义了从 Java编程语言的基本类型和对象到用于网络、安全、数据库访问、图形用户界面(GUI) 开发和 XML 解析的高级类的所有内容。
除了核心 API 之外,Java SE平台还包括虚拟机、开发工具、部署技术以及 Java技术应用程序中常用的其他类库和工具包。
Java EEJava EE 平台构建在 Java SE 平台之上。
Java EE平台为开发和运行大规模、多层、可扩展、可靠和安全的网络应用程序提供了API 和运行时环境。
Java MEJava ME 平台提供了一个 API和一个小型虚拟机,用于在小型设备(如手机)上运行 Java 编程语言应用程序。
该API 是 Java SE API的一个子集,以及对小型设备应用程序开发有用的特殊类库。
Java ME应用程序通常是 Java EE 平台服务的客户端。
JavaFXJavaFX 是一个使用轻量级用户界面 API 创建富 Internet应用程序的平台。
java2实用教程课后习题答案(第三版简单题)
第一章1. 开发与运行J ava程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。
得到字节码文件*.class(3)运行Java程序:Java应用程序使用J ava解释器(java.exe)执行字节码文件;Java小应用程序使用支持Jav a标准的浏览器来执行。
2. 怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答:①应用程序必须有main方法,这个方法是程序执行的入口。
小应用程序没有main方法。
②应用程序的主类不一定用publi c修饰;小应用程序的主类必须用publi c修饰。
3. Java程序是由什么组成的?一个程序中必须要有pu blic类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成。
②应用程序可以没有pub lic类;小应用程序一定有一个类是publ ic类(主类)。
③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有pub lic类(最多一个),源文件名与p ublic类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为.java。
小应用程序:源文件名与主类的类名相同,拓展名是.java。
第四章1. 类中的实例变量在什么时候会被分配内存空间?答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。
2. 什么叫方法的重载?构造方法可以重载吗?答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。
java程序设计实用教程_(第3版)、_课后答案
为了确定常量或变量的数据性质、取值范围、以及它们占用的内存单元的字节数和它们参加的合法运算和操作。
6.什么是变量的作用域,声明变量时,如何确定变量的作用域?
【答】变量的作用域是指其作用范围。变量声明的位置决定了它的作用域
4.算术运算、关系运算、逻辑运算和位运算各有哪些运算符?
【答】算术运算:单目运算符有+(正)、—(负)、++(自增)、——(自减),双目运算符有+(加)、—(减)、*(乘)、/(除)、%(取余)
关系运算:=(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)都是双目运算
number++;
}
k+=2;//测试下一个奇数是否是素数
} while(k<MAX);
output();
}
public static void output()//输出素数
{
System.out.println("All primes in 2~"+MAX+" are: ");
for (int i=0;i<number;i++)
j++;
}
i++;
}
}
System.out.println();
}
public static void init()//初始化数组,筛选法求素数
{
prime = new int[30];
prime[0]=2;//已知的最小素数
JAVA大学实用教程(第三版)课后习题答案(原版)
arithmetical.start=Reader.nextInt();
System.out.println("请输入等差数列的差值");
arithmetical.d=Reader.nextInt();
System.out.println("请输入等差数列求和的个数");
答:方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同,或者参数的个数不同,或者参数的类型不同。构造方法可以重载。
9.请阐述为什么类方法不能调用实例方法?
答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类对象创建之前,实例方法还没有入口地址。还不知道一个方法从何处开始执行,当然不能调用。
如加入参数-private则可列出其全部的成员方法和成员变量。
如:
Javap–private java.awt.Button则可以列出Button类中全部的方法和成员变量。
18.下面程序中那个语句是错的?
class A
{
private float weight; //weight被修饰为private的float型变量。
If(x>9){
y=100;
Z=200;
}
Else
y=-100;
z=-200;
System.out.printf(“%d,%d,%d”,x,y,z);
输出:10,100,-200
8.下列for语句输出结果是什么?
For(int i=1; i<=4; i++){
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章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;错。
3.下列语句那些有错?byte x=32;char c='a';int n=c-x;c=c-x;答:c=c-x;错,应改为int c=c-x4•下列语句正确的是A.表达式“12+56>34”的值是trueB.表达式“12+56||34”是非法表达式C.表达式“x+y=12”是非法表达式D.表达式“12+56>34"的值是13答:(A, C )5.对于整数m, m«l的结果一定是2m吗?答:不一定,高位有损失时,不是2m6•对于两个int整形变量Int m=120, n=240;那么m A m=?;m A n A n=?答:mAm=O; m A n A n=1207.下列System.out.printf语句输出的结果是什么? int x=10, y=10, z=10; if(x>9){y=100;Z=200;}else{尸100;}z=-200;System.out.printf("%d,%d,%d'',x,y,z);输出:10, 100, -2008.下列for语句输出结果是什么?for(int i=l; i<=4; i++){switch(i){case 1: System.out.printf(t<%c,,/a,);case 2: System.out.printf("%c”,'b');break;case 3: System.out.printf(4t%c,,,,c,);case 4: System.out.printf(t4%c,,,,d,);break;输出:a,b, b,c,d,d9.下列System.out.printf语句输出的结果是什么?chara[]={'a','b','c','d','e'};for(int i=0; i<=a.length/2; i++){char c=a[i];a[i]=a[a.length-(i+l)];a [a.length-(i+l)]=c;}System.out.printf(<<%c%c%c%c%c,,,a[0],a[l],a[2],a[3],a[4]); 输出:e,d,c,b,a10.下列System.out.printf语句输出的结果是什么?int a[]={3,4,l,2,-6};fbr(int i=0; i<a.lemgth;汁+){for(int j=i+1 ;j<a.lenght;j++) {if(a[j]<a[i]){int n=a[j]; a[j]=a[i]; a[i]=n;} } }System.out.printf(u%d,%d,%d,%d,%d,,,a[0],a[ 1 ], a[2],a[3],a[4]); 输出:・6,1,2,3,4 第三章作业题1.import java.util.*;public class ZuoYe3 1 {public static void main (String args[ ]){Scanner rcadcr=ncw Scanncr(Systcm.in);double y=0,x=0;x=reade r.nextDouble();if(x<0)y=-l+2*x;else if(x=0)y=-i;else if(x>0)y=.]+3*X;System.out.println(y);}}2.public class ZuoYe3_2 {public static void main(String args[]){int sum=0,m=3 ,n=7,a= 1;while(a<=1000){if(a%m==0&&a%n=O) sum=sum+a;a++;}System.out.println(H sum=n+sum);}}3.public class ZuoYe3 3{public static void main(String args[]){long sum=0,a=8Jtem=a5n= 10,i= 1; for(i=l;i<=n;i++){ sum=sum+item;item=item* 10+a;}System.out.println(sum);}}4.public class ZuoYe3_4{public static void main(String args[]){double sum=0,a= 1 ,b= 1 ,fuhao= 1 ,item=a/b; int i=l;while(i<=1000){sum=sum+fuhao*itcm;i++;fiihao=fuhao*(-l);b=b+2;item=a/b;}System.out.println("sum=,'+sum);public class ZuoYe3_5public static void main(String args[]) {double sum=0,a=l;int i=l;whilc(i<=20){if(i>=10)sum=sum+a;i++; a=a*i;}System.out.println(H sum=,,+sum);第四章类与对象问答题1•在声明类时,类名应遵循哪些习惯?答:首字母人写,望名知意2•类体内容有哪两种重要成员?答:成员变量,和成员方法。
3。
实例方法可以操作类变量吗?类方法可以操作实例变量吗?答:实例方法可以操作类变量。
而类方法不可以操作实例变量。
4•当类的字节码加载到内存时,类变量就一定分配了内存空间吗?答:实例成员变量不分配内存,而类变量一定分配内存。
5.类的实例变量在什么时候分配内存?答:声明之示,在用new关键字创建实例的时候才分配内存。
6.—个类的类变量被该类创建的所冇对象共享吗?答:共享7.不同对象的实例变量分配的内存地址一定不同吗?答:当出现引用赋值语句时两个实例变量的内存地址相同。
8.什么叫方法的重载?构造方法可以重载吗?答:方法的重载是指一个类中可以冇多个方法具冇相同的名字,但这些方法的参数不同,或者参数的个数不同,或者参数的类型不同。
构造方法可以重载。
9•为什么类方法不能调用实例方法?答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类耒创建对彖,也可以通过类名调用类方法。
而这时在类对象创建之前,实例方法还没有入口地址。
还不知道一个方法从何处开始执行,当然不能调用。
10.为什么类方法中不能操作实例成员变量?答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。
1佃这时在类创建Z前,实例成员变量还没有分配内存空间。
没内存空间当然无法操作。
11 •实例方法可以用类名直接调用吗?答:不能,因为实例方法,用new创佳对象后才分配入口地址,而类名,一经声明就分配类名地址。
而这时对象创建之询实例方法还没有入口地址。
实例方法表现实例的功能,或改变实例变量。