《Java面向对象程序设计》(第2版)课后答案

合集下载

java语言程序设计教程第二版习题解答

java语言程序设计教程第二版习题解答
它定义一组对象所能拥有的共同特征,用以说明该组对象的能力与性质。
4) 消息:消息是对象之间进行通信的一种数据结构。
5) 封装:封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好
的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)
显式地分开,其内部实现按其具体定义的作用域提供保护。
End of j loop;i=2
(7)Java系统要求对对象进行相容性检查,以防止不安全的类型转换。
(8) Java语言最强大的特性之一是它的平台独立性,Java可以处理好平台之间的
移植问题。
(9)Java语言中没有全局变量的定义,只能通过公用的静态的变量实现,从而减少了
引起错误的地方。
6.什么叫Java虚拟机?什么叫Java的字节码?
(3)的运行结果如下:
运行结果取决于随机数。求随机数的阶乘,其中的一个运行结果如下:
3!=6
(4)的运行结果如下:
0 0 0
0 0 1
0 0 2
End of k loop;j=0
0 1 0
0 1 1
6.阅读下列程序,写出运行结果。
(1).
public class Example0401{
public static void main(String[] args){
for(int x=0;x<10;x++){
int y=x*x+x+41';
System.out.println("\t"+x+"\t"+y);
2 0 1

JAVA语言程序设计教程第二版习题解答

JAVA语言程序设计教程第二版习题解答
1)– –a%b++ 2) (a>=1)&&a<=12?a:b) 3) f^(a>b) 4) (– –a)<<a。
【答】: Java的运算符主要由算术运算符、关系运算符、条件运算符、位运算符、逻 辑运算符以及赋值运算符。表达式由运算符、操作数和方法调用,按照语言 的语法规则构造而成的符号序列。 表达式的结构是: 1)– –a%b++的结果是:1 2)(a>=1)&&a<=12?a:b)的结果是:1 3)f^(a>b)的结果是:false 4)(– –a)<<a的结果是:0 5.Java中标准输入输出使用哪种系统类、使用哪个对象和方法?
对象“汽车”与对象“小汽车”是什么关系,对象“汽车”与“轮胎”又是什么关 系?
【答】: 对象“汽车”与对象“小汽车”具有继承关系,即对象“小汽车”继承了对象“汽 车”。“轮胎”是对象“汽车”的一个属性,所以对象“汽车”包含“轮胎”,二者 是包含关系。 简述Java语言的主要特点。
【答】: Java语言的主要特点:(1)简单性 (2)面向对象 (3)分布式 (4)健 壮性 (5)结构中立 (6)安全性 (7)可移植 (8)解释的(9)高性能 (10) 多线程 (11)动态性 5.简述Java语言与C/C++语言的主要差异。
public class Example02{ public static void main(String[] args){ System.out.print(0) int fib0=0; int fib1=1; int fib2=fib0+fib1 while(fib2<100){ fib0=fib1; fib1=fib2; fib2=fib1+fib0; System.out.print(","+fib1); } } } (3).产生0~20的随机整型,然后计算并打印它的结果:

Java2面向对象程序设计答案

Java2面向对象程序设计答案
07 System.out.println(i+"+"+i+"="+(i+i)); // 印出内容
08 System.out.println(i+"*"+i+"="+(i*i)); // 印出内容
09 }
10 }
2-3 变量名称不能使用到Java的关键词,其他的英文字母、数字或底线皆可。此外,Java的变量有大小写之分,会将其判断成两个不同的变量。
字符类型会转换成short类型(字符会取其Unicode码)。
Int类型会转换成float类型。
若表达式中的某个操作数的类型为double,则另一个操作数也会转换成double类型。
布尔类型不能转换至其他的类型。
第五章 单数题参考答案
5-1 循序性结构是由上至下(top to down)的语句方式,一行语句执行完毕后,接着再执行下一行语句。这种结构的流程图如下所示:
例如:
(float)a/b // 将整数其中一个强制转换成浮点数,再与另一个整数相除
a/(float)b
(float)a/(float)b // 将两个整数同时强制转换成浮点数后再彼此相除
3-19 由于从键盘中所输入的数据Java都视为字符串,故必须通过转换的操作来达成。
数据类型 转换的method()
(b) 1A (X) 整数常数不能有数字以外的其他字符
(c) 3.20 (O)
(d) a5 (X) 整数常数不能有数字以外的其他字符
(e) $53 (X) 整数常数不能有数字以外的其他字符
(f) -67 (O)

JAVA面向对象程序设计(第二版)袁绍欣第五章答案

JAVA面向对象程序设计(第二版)袁绍欣第五章答案

JAVA⾯向对象程序设计(第⼆版)袁绍欣第五章答案1.⾯向对象的主要特征是什么?封装、继承、多态2.封装是如何实现的?封装通过访问控制符实现的,只有通过授权才能访问数据。

3.对象之间如何相互作⽤?作⽤的条件是什么?通过消息,拥有访问类数据成员或成员⽅法的权限。

4.protected修饰符的特点?只有包内其它类、⾃⼰和⼦类可以访问。

5.Object都有哪些⽅法?Object clone() //克隆对象boolean equals() //判断两个引⽤是否指向同⼀个对象void finalize() //释放对象int hashCode() //获得代表对象特有的 hashcode 整数String toString() //代表对象的字符串void notify() //线程同步中唤醒等待线程void wait()//线程同步中线程等待6.重载的⽅法之间⼀般有什么关系?⽅法名相同,⽽参数不同。

返回类型可以相同也可以不同。

7.⼦类覆盖⽗类⽅法需要什么条件?⼦类中定义与⽗类同名的⽅法⼀定是覆盖吗?⽅法名,参数,返回类型全部相同,内容不同。

不⼀定8.封装、继承和多态在⾯向对象设计中的⽤途是什么?封装可以保护类的数据成员,隐藏信息。

⼦类继承⽗类的属性和⽅法后,不⽤重新编写代码,提⾼了代码复⽤性。

多态最重要的是⼦类的功能可以被⽗类的引⽤调⽤,向后兼容。

9.设计Src和Dis两个类,Src中有⼀个被封装的属性,类型类 int ,每当通过特定⽅法更改Src对象中的这个属性后,Dis对象都能得到通知,并向Src发消息获得此属性值。

public class Src{int num;Dis dis;Src(int n){if(n>0)num = n;}void SetDis(Dis d){dis = d;}void Change(int n){if(n>0&&n!=num){num = n;dis.print();}}int getNum(){return num;}public static void main(String[] args) {Src src = new Src(1);Dis dis = new Dis(src);src.SetDis(dis);for(int i=0;i<5;i++){src.Change(i);}}}public class Dis{Src src;Dis(Src s){src = s;}void print(){System.out.println("num被改变为:"+src.getNum()); }}/*结果:num被改变为:2num被改变为:3num被改变为:4*/。

Java面向对象程序设计_习题解答(耿祥义)

Java面向对象程序设计_习题解答(耿祥义)

书后习题参考答案习题1 2习题2 3习题3 4习题4 10习题5 11习题6 14习题7 15习题9 16习题12 20习题13 25习题14 27习题15 28习题16 31习题17 39习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。

(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。

命令:javac –d . 文件名称.java(3)使用Java解释器(java.exe)运行Java程序。

命令:java 包名.类名3.Java的源文件是由若干个书写形式互相独立的类、接口、枚举等组成。

应用程序中可以没有public类,若有的话至多可以有一个public类。

4.新建JAVA_HOME系统环境变量,指向安装目录在系统环境变量path中增加内容:%JAVA_HOME%\bin;新建系统环境变量classpath并填入三项:.; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar5. B6. Java源文件的扩展名是.java。

Java字节码的扩展名是.class。

7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class和Xiti8.class(3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError:Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。

Java面向对象程序设计课后习题参考答案

Java面向对象程序设计课后习题参考答案

public class San_4 {// 编写一个应用程序求1!+2!+ (20)/*** @param args//本题考查对循环的运用和对算法的编写*/public static void main(String[] args) {// TODO Auto-generated method stubint a;double b = 1, sum = 0;// 定义变量for (a = 1; a <= 20; a++) {// for循环实现该功能b = b * a;// 当a=1时,b=b*a=1,依此类推sum = sum + b;// 当a=1时,sum=sum+b=1,依次类推}for (int w = 1; w <= 19; w++) {// for循环打印出阶乘之和的形式来System.out.print(w + "!" + "+");}System.out.println("20!" + "=" + sum);// 最终输出阶乘之和double sum1 = 0, a1 = 1;int i = 1;while (i <= 20)// 用while循环实现该功能{sum1 = sum1 + a1;i++;a1 = a1 * i;}System.out.println("sum1=" + sum1);}}输出结果:1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2.18203E18sum1=2.18203E18习题3_5public class San_5 {// 求100以内的素数/*** @param args//本题考查对for循环、break语句、if语句的运用*/public static void main(String[] args) {// TODO Auto-generated method stubint i, j;for (i = 2; i <= 100; i++) {// for循环从2开始,逐渐增1for (j = 2; j <= i / 2; j++) {// for循环从2开始,逐步增1if (i % j == 0) {// 如果i除以j的余数为0,则终止本次for循环break;}}if (j > i / 2) {// 如果j>i/2,输出iSystem.out.print(" " + i);}}}}2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 8389 97习题3_6public class San_6 {// 分别用while和for循环计算1+1/2!+1/3!+1/4!...的前20项和/*** @param args//本题考查同学们对while循环、for循环以及对输出字符串格式的运用 */public static void main(String[] args) {// TODO Auto-generated method stubint i = 1, k;double j = 1, m = 1, sum1 = 0, sum2 = 0;while (i <= 20) {// 用while循环实现sum1 = sum1 + j;i++;j = j * (1.0 / i);}System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}System.out.print("1/20!" + "=" + sum1);System.out.println();System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}for (k = 1; k <= 20; k++) {// 用for循环实现m *= (1.0 / k);sum2 += m;}System.out.println("1/20!" + "=" + sum2);}}计算结果:1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.904551+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.90455习题3_7public class San_7 {// 一个数如果恰好等于它的因子之和,这个数就成为”完数“。

java程序设计使用教程(第2版)参考答案

java程序设计使用教程(第2版)参考答案
第一章习题答案
一、简答题
1.Java语言有哪些特点?主要用于能够哪些方面的软件开发?
特点:(1)面向对象,(2)平台无关性,(3)分布式,(4)可靠性和安全性,(5)多线程,(6)简单性,(7)健壮性,(8)高性能,(9)灵活性。
适用范围:(1)所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等。(2)计算过程的可视化、可操作化的软件的开发。(3)动态画面的设计,包括图形图象的调用。(4)交互操作的设计。(5)Internet 的系统管理功能模块的设计,包括 Web 页面的动态设计、管理和交互操作设计等。(6)Intranet上的软件开发(直接面向企业内部用户的软件)。(7)与各类数据库连接查询的 SQL 语句实现。(8)网络通信与移动通信,网络集成方面。
// 1
// 1 1
// 1 2 1
// 1 3 3 1
// 1 4 6 4 1
// 1 5 10 10 5 1
public class XT00206 {
public static void main(String args[]) {
int i,j,temp;
int a[][]=new int[8][8];
JVM是运行Java程序必不可少的机制,编译后的Java程序指令并不直接在硬件系统上CPU上执行,而是由JVM执行。JVM是编译后的Java程序和硬件系统之间的接口,程序员可以把JVM看成一个虚拟的处理器,它不仅解释执行编译后的Java指令,而且还要进行安全检查,它是Java程序能在多平台间进行无缝移植的可靠保证,同时也是Java程序的安全检验引擎。
}//end speak()
}//end class
第二章习题答案
一、简答题

java语言程序设计教程第二版习题解答

java语言程序设计教程第二版习题解答

习题一‎1.‎简述面向‎对象软件开‎发方法的重‎要意义。

‎‎【答】:‎面向对‎象的软件开‎发方法按问‎题论域来设‎计模块,以‎对象代表问‎题解的中心‎环节,力求‎符合人们‎日常的思维‎习惯,采用‎―对象+消‎息‖的程序‎设计模式,‎降低或分解‎问题的难度‎和复杂性‎,从而以较‎小的代价和‎较高的收益‎获得较满意‎的效果,满‎足软件工程‎发展需要。

‎‎2.解释‎下面几个概‎念:‎1)对象‎2)实例‎3)类 4‎)消息 5‎)封装 6‎)继承 7‎)多态‎【答】:‎1)‎对象:就‎是现实世界‎中某个具体‎的物理实体‎在计算机中‎的映射和体‎现,是由属‎性和操作‎所构成的一‎个封闭整体‎。

‎2)实例‎:是对象在‎计算机内存‎中的映像。

‎3‎)类:是‎描述对象的‎―基本原型‎‖,是描述‎性的类别或‎模板,即对‎一组对象的‎抽象。

它‎定义一组对‎象所能拥有‎的共同特征‎,用以说明‎该组对象的‎能力与性质‎。

‎4)消息‎:消息是对‎象之间进行‎通信的一种‎数据结构。

‎5‎)封装:‎封装性是保‎证软件部件‎具有优良的‎模块性的基‎础。

面向对‎象的类是封‎装良好的‎模块,类定‎义将其说明‎(用户可见‎的外部接口‎)与实现(‎用户不可见‎的内部实现‎)显式地‎分开,其内‎部实现按其‎具体定义的‎作用域提供‎保护。

‎6)‎继承:继承‎性是子类自‎动共享父类‎数据结构和‎方法的机制‎,这是类之‎间的一种关‎系。

‎7)多‎态:多态性‎是指一个名‎字具有多种‎语义,即指‎同一消息为‎不同对象所‎接受时,可‎以导致不‎同的操作。

‎‎3.‎对象―汽车‎‖与对象―‎小汽车‖是‎什么关系,‎对象―汽车‎‖与―轮胎‎‖又是什么‎关系?‎‎【答】:‎对象‎―汽车‖与‎对象―小汽‎车‖具有继‎承关系,即‎对象―小汽‎车‖继承了‎对象―汽车‎‖。

―轮‎胎‖是对象‎―汽车‖的‎一个属性,‎所以对象―‎汽车‖包含‎―轮胎‖,‎二者是包含‎关系。

java程序设计第二版课后答案

java程序设计第二版课后答案

java程序设计第二版课后答案Java程序设计第二版课后答案涵盖了多个章节,每个章节都包含了不同的编程概念和练习题。

以下是一些常见章节的课后答案概要,以供参考:第1章:Java简介- 1.1 Java的起源和特点- 1.2 Java平台的组成- 1.3 Java开发环境的搭建第2章:基本语法- 2.1 数据类型- 2.2 变量声明- 2.3 运算符- 2.4 控制语句(if, switch, loop)第3章:控制流程- 3.1 条件语句(if-else, switch-case)- 3.2 循环语句(for, while, do-while)- 3.3 跳转语句(break, continue, return)第4章:数据结构- 4.1 数组的定义和使用- 4.2 字符串的处理- 4.3 集合框架简介第5章:面向对象编程- 5.1 类和对象- 5.2 构造方法- 5.3 继承- 5.4 封装和多态第6章:异常处理- 6.1 异常的概念- 6.2 异常的分类- 6.3 异常的处理方式(try-catch-finally)第7章:输入输出- 7.1 标准输入输出- 7.2 文件输入输出- 7.3 序列化第8章:Java集合框架- 8.1 集合的基本概念- 8.2 List接口及其实现- 8.3 Set接口及其实现- 8.4 Map接口及其实现第9章:泛型- 9.1 泛型的概念- 9.2 泛型的使用- 9.3 泛型的限制第10章:多线程- 10.1 线程的概念- 10.2 创建和启动线程- 10.3 线程的同步第11章:网络编程- 11.1 网络编程基础- 11.2 Socket编程- 11.3 URL和URLConnection第12章:图形用户界面- 12.1 AWT和Swing- 12.2 事件处理- 12.3 布局管理器第13章:Java数据库连接- 13.1 JDBC基础- 13.2 数据库连接和操作- 13.3 SQL语句的使用第14章:Java Web应用- 14.1 Servlet基础- 14.2 JSP技术- 14.3 MVC架构模式每个章节的课后答案通常包括理论问题和编程练习题的解答。

java语言程序设计第二版习题答案

java语言程序设计第二版习题答案

java语言程序设计第二版习题答案Java语言程序设计第二版习题答案Java语言程序设计是一门广泛应用于软件开发领域的编程语言。

无论是初学者还是有经验的开发人员,都可以通过学习Java语言来提升自己的编程能力。

为了帮助读者更好地掌握Java语言的知识,本文将提供《Java语言程序设计第二版》中一些习题的答案,并对其中一些重要的概念进行解释和讨论。

第一章:计算机、程序和Java1.1 问题:编写一个Java程序,输出“Hello, World!”。

答案:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```1.2 问题:Java应用程序的执行过程是怎样的?答案:Java应用程序的执行过程可以分为三个阶段:编辑、编译和运行。

首先,我们使用文本编辑器编写Java源代码文件,文件的扩展名为.java。

然后,使用Java编译器将源代码文件编译成字节码文件,文件的扩展名为.class。

最后,使用Java虚拟机(JVM)加载字节码文件并执行程序。

第二章:基本程序设计2.1 问题:编写一个Java程序,计算两个整数的和。

答案:```javaimport java.util.Scanner;public class Sum {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter the first number: ");int num1 = input.nextInt();System.out.print("Enter the second number: ");int num2 = input.nextInt();int sum = num1 + num2;System.out.println("The sum is " + sum);}}```2.2 问题:什么是变量?如何在Java中声明和使用变量?答案:变量是用于存储数据的内存位置。

java程序设计教程第二版课后答案

java程序设计教程第二版课后答案

java程序设计教程第二版课后答案【篇一:《java程序设计》课后习题参考答案】参考答案――武汉大学出版社习题1参考答案1.java语言的特点有哪些??答:参考1.1.2防止直接访问数据变量看起来有些奇怪,但它实际上却对使用类的程序质量有极大的好处。

既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。

因此,如果要求类成员内部的一致性,就应该通过类本身的方法来处理。

这种数据隐藏技术就是面向对象的重要特性——封装。

它将类的外部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。

即使实现细节发生了改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。

2.简述封装的优点。

?答:封装是一个简单而有效的思想,优点有:(1)模块化,对内成为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。

(2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。

面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何实现的这样一些细节。

通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也有利于对复杂对象的管理。

类的封装性使得代码的可重用性大为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。

3.java的基本工具有哪些??(1) javac 编译器(2) java 解释器(3) jdb java 语言调试器(4) javadoc api文档管理器(5) javah 头文件生成器(6) appletviewer 小应用程序浏览器(7) javap 类文件反汇编器4.java开发环境是如何配置的?答:对于windows 2000以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。

java程序设计(第二版)课后习题答案

java程序设计(第二版)课后习题答案

//习题2.2import java.util.*;class MyDate{private int year;private int month;private int day;public MyDate(int y,int m,int d){//构造函数,构造方法year=y;month=m;day=d;}//end public MyDate(int y,int m,int d)public int getYear(){//返回年return year;}//end getYear()public int getMonth(){//返回月return month;}//end getMonth()public int getDay(){//返回日return day;}//end getDay()}//end class MyDateclass Employee{private String name;private double salary;private MyDate hireDay;public Employee(String n,double s,MyDate d){name=n;salary=s;hireDay=d;}//end public Employee(String n,double s,MyDate d)public void print(){System.out.println("名字:"+name+"\n工资:"+salary+"\n雇佣年份:"+hireYear()+"\n");}//end print()public void raiseSalary(double byPercent){salary*=1+byPercent/100;}//endpublic int hireYear(){return hireDay.getYear();}}//end class Employeepublic class MyTestClass {public static void main(String[] args) {Employee[]staff=new Employee[3];staff[0]=new Employee("Harry Hacker",35000,new MyDate(1989,10,1));- 2 - staff[1]=new Employee("Carl Carcker",75000,new MyDate(1987,12,15)); staff[2]=new Employee("Tony T ester",38000,new MyDate(1990,3,12)); int integerValue;System.out.println("The information of employee are:");for(integerValue=0;integerValue<=2;integerValue++){staff[integerValue].raiseSalary(5);}//end for()for(integerValue=0;integerValue<=2;integerValue++){staff[integerValue].print();}//end for()}//end main() }//end class MyTestClass//习题2.4import java.util.*;public class DataType {public static void main(String[] args) {boolean flag;char yesChar;byte finByte;int intValue;long longValue;short shortValue;float floatValue;double doubleValue;flag=true;yesChar='y';finByte=30;intValue=-7000;longValue=200l;shortValue=20000;floatValue=9.997E-5f;doubleValue=floatValue*floatValue;System.out.println("the values are:");System.out.println("布尔类型变量flag="+flag);System.out.println("字符型变量yesChar="+yesChar);System.out.println("字节型变量finByte="+finByte);System.out.println("整型变量intValue="+intValue);System.out.println("长整型变量longValue="+longValue);System.out.println("短整型变量shortValue="+shortValue);System.out.println("浮点型变量floatValue="+floatValue);System.out.println("双精度浮点型变量doubleValue="+doubleValue);}//end main()}//习题2.9import java.util.*;class PubTest1{private int ivar1;private float fvar1,fvar2;public PubTest1(){fvar2=0.0f;}public float sum_f_I(){fvar2=fvar1+ivar1;return fvar2;}public void print(){System.out.println("fvar2="+fvar2);}public void setIvar1(int ivalue){ivar1=ivalue;}public void setFvar1(float ivalue){fvar1=ivalue;}}public class PubMainTest {public static void main(String[] args) {PubTest1 pubt1=new PubTest1();pubt1.setIvar1(10);pubt1.setFvar1(100.02f);pubt1.sum_f_I();pubt1.print();}}//习题2.10import java.util.*;class Date {private int year;private int month;private int day;public Date(int day, int month, int year) { //构造函数,构造方法this.year = year;this.month = month;this.day = day;} //end public MyDate(int y,int m,int d)- 4 -public int getYear() { //返回年return year;} //end getYear()public int getMonth() { //返回月return month;} //end getMonth()public int getDay() { //返回日return day;} //end getDay()} //end class Datepublic class Teacher {String name;//教师名字boolean sex;//性别,true 表示男性Date birth;//出生日期String salaryID;//工资号String depart;//教师所在系所String posit;//教师职称String getName() {return name;}void setName(String name) { = name;}boolean getSex() {return sex;}void setSex(boolean sex) {this.sex = sex;}Date getBirth() {return birth;}void setBirth(Date birth) {this.birth = birth;}String getSalaryID() {return salaryID;}void setSalaryID(String salaryID) {this.salaryID = salaryID;}String getDepart() {return depart;}void setDepart(String depart) {this.depart = depart;}String getPosit() {return posit;}void setPosit(String posit) {this.posit = posit;}public Teacher(){System.out.println("父类无参数的构造方法!!!!!!!");}//如果这里不加上这个无参数的构造方法将会出错!!!!public Teacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit){ =name;this.sex=sex;this.birth=birth;this.salaryID=salaryid;this.depart=depart;this.posit=posit;}//end Teacher()public void print(){System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if(this.getSex()==false){System.out.println("女");}else{System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear()+"-"+this.getBirth().getMonth()+"-"+this.getBirth().getDay()); System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());}//end print()public static void main(String[] args) {Date dt1=new Date(11,23,1989);Date dt2=new Date(2,6,1975);- 6 -Date dt3=new Date(11,8,1964);Date dt4=new Date(10,4,1975);Date dt5=new Date(8,9,1969);//创建各系教师实例,用来测试Teacher t1=new Teacher("王莹",false,dt1,"123","经济学","prefessor");ResearchTeacher rt=new ResearchTeacher("杨zi 青",true,dt2,"421","软件工程", "associate prefessor","software"); LabTeacher lat=new LabTeacher("王夏瑾",false,dt3,"163","外语","pinstrucor","speech lab");LibTeacher lit=new LibTeacher("马二孩",true,dt4,"521","大学物理","prefessor","physicalLib");AdminTeacher at=new AdminTeacher("王xi",false,dt5,"663","环境","prefessor","dean");/////////分别调用各自的输出方法,输出相应信息//////////////////////////// System.out.println("-------------------------------");t1.print();//普通教师信息System.out.println("-------------------------------");rt.print();//研究系列教师信息System.out.println("-------------------------------");lat.print();//普通教师信息System.out.println("-------------------------------");lit.print();//实验系列教师信息System.out.println("-------------------------------");at.print();//行政系列教师信息System.out.println("-------------------------------");}//end main()}//end public class Teacherclass ResearchT eacher extends Teacher{private String resField;public ResearchT eacher(String name, boolean sex, Date birth, String salaryid, String depart, String posit, String resField) { = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.resField = resField;} //end public ResearchTeacher(){}String getResField(){return resField;}void setResField(String resField){this.resField=resField;}public void print() {System.out.print("research teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'resField:");System.out.println(this.getResField());} //end print()}//end class ResearchTeacherclass LabTeacher extends T eacher{private String labName;public LabTeacher(String name, boolean sex, Date birth,String salaryid, String depart,String posit, String labName) { = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;bName = labName;} //end public ResearchTeacher(){}String getLabName(){return labName;}void setLabName(String labName){- 8 -bName=labName;}public void print() {System.out.print("lab teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'labName:");System.out.println(bName);} //end print()}//end class LabTeacherclass LibTeacher extends Teacher{private String libName;public LibTeacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit,String libName){ = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.libName=libName;}//end public ResearchT eacher(){}String getLibName(){return libName;}void setLibName(String libName){this.libName=libName;}public void print() {System.out.print("lib teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'libName:");System.out.println(this.libName);} //end print()}//end class LibTeacherclass AdminTeacher extends Teacher{private String managePos;public AdminTeacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit,String managePos){ = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.managePos=managePos;- 10 -}//end public ResearchT eacher(){}String getManagePos(){return managePos;}void setManagePos(String managePos){this.managePos=managePos;}public void print() {System.out.print("adminteacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'managePos:");System.out.println(this.managePos);} //end print() }//end class AdminTeacher习题2.11public class Course {private String courseID;private String courseName;private String courseType;private int classHour;private float credit;public Course(String courseID, String courseName, String courseType, int classHour, float credit) {this.courseID=courseID;this.courseName=courseName; this.courseType=courseType; this.classHour=classHour; this.credit=credit;}//end public Course(){}String getID() {return courseID;}void setID(String id) {this.courseID = id;}String getName() {return courseName;}void setName(String name) { this.courseName = name;}String getType() {return courseType;}void setType(String type) { this.courseType = type;}int getClassHour() {return classHour;}void setClassHour(int hour) { this.classHour = hour;}float getCredit() {return classHour;}void setCredit(float credit) { this.credit= credit;}- 12 -public void print(){System.out.println("the basic info of this course as followed:"); System.out.println("courseID="+this.getID());System.out.println("courseName="+this.getName());System.out.println("courseType="+this.getType());System.out.println("classHour="+this.getClassHour());System.out.println("credit="+this.getCredit());}public static void main(String[] args) {Course cs=new Course("d12","java 程序设计(第二版)","cs",64,3.0f); System.out.println("----------------------------------");cs.print();System.out.println("修改课程学分为4.0f");cs.setCredit(4);cs.print();} }//习题2.12public class MyGraphic {String lineColor;String fillColor;MyGraphic(String lc,String fc){this.lineColor=lc;this.fillColor=fc;}void print(){System.out.println("line color is "+this.lineColor+"\t fill color is "+this.fillColor);}public static void main(String[] args) {float rd=(float)4.5;MyCircle mc=new MyCircle(rd,"black","white");MyRectangle mr=new MyRectangle(4,6,"red","blue");System.out.println("Circle info ");mc.print();System.out.println("circumference is " + mc.calCircum());System.out.println("square is " + mc.calSquare());System.out.println("rectangle info: ");mr.print();System.out.println("circumference is " + mr.calCircum());System.out.println("square is " + mr.calSquare()); }//end main(){}}//end public class MyGraphicclass MyRectangle extends MyGraphic{float rLong;float rWidth;MyRectangle (float rl,float rw,String lc,String fc){super(lc,fc);this.rLong=rl;this.rWidth=rw;}//end MyRectangle (){}float calCircum(){return ((float)((this.rLong+this.rWidth)*2));}float calSquare(){return ((float)(this.rLong*this.rWidth));}}//end class MyRectangleclass MyCircle extends MyGraphic{float radius;MyCircle (float rd,String lc,String fc){super(lc,fc);this.radius=rd;}//end MyRectangle (){}float calCircum(){return (float)((this.radius*3.12*2));}float calSquare(){return ((float)(this.radius*this.radius*3.14));}}//end class MyCircle//习题2.13public class Vehicle {String brand;String color;int price;int number;- 14 -public Vehicle(String b, String c) {this.brand = b;this.color = c;}public Vehicle(String b, String c, int p, int n) {this(b, c);this.price = p;this.number = n;}void print() {System.out.println("\n-------------------------");System.out.println("the vehicle info as followed :");System.out.println("brand=" + this.brand + "\t");System.out.println("color=" + this.color + "\t");System.out.println("price=" + this.price + "\t");System.out.println("number=" + this.number + "\t");} //end void print()public static void main(String[] args) {Vehicle c1=new Vehicle("vehicle1","white");Vehicle c2=new Vehicle("vehicle2","white",300,1);Car cr=new Car("car1","red",300,4,400);Truck tk2=new Truck("truck1","black",300,400);c1.print();c2.print();cr.print();tk2.print();} //end main()} //end public class Vehicleclass Car extends Vehicle{int speed;Car(String b, String c, int p, int n,int s){super(b,c,p,n);this.speed=s;}void print(){super.print();System.out.print("speed="+this.speed);}}//end class Carclass Truck extends Vehicle{int weight;Truck(String b, String c, int s,int w){super(b,c);this.speed=s;this.weight=w;}void print(){super.print();System.out.print("speed="+this.speed);System.out.print("weight="+this.weight); }}//end class Truck//习题3.3public class Test {public static void main(String[] args) {int b1=1;int b2=1;System.out.println("b1=" + b1);System.out.println("b2=" + b2);b1<<=31;b2<<=31;System.out.println("b1=" + b1);System.out.println("b2=" + b2);b1 >>= 31;System.out.println("b1=" + b1);b1 >>= 1;System.out.println("b1=" + b1);b2 >>>= 31;System.out.println("b2=" + b2);b2 >>>= 1;System.out.println("b2=" + b2);}}//习题3.4public class Factorial {private int result,initVal;public static int Factorial(int n){if(n==0){- 16 -}return n*Factorial(n-1);}public void print(){System.out.println(initVal+"!="+result);}public void setInitVal(int n){initVal=n;}public static void main(String[] args) {Factorial ff=new Factorial();for(int i=0;i<=4;i++){ff.setInitVal(2*(i+1));ff.result=Factorial(ff.initVal);ff.print();}//end for()}//end main()}//end public class Factorialpublic class Factorial2 {private int result,initVal;public void print(){System.out.println(initVal+"!="+result);}public void setInitVal(int n){initVal=n;}public static void main(String[] args) {Factorial2 ff=new Factorial2();for(int i=0;i<=4;i++){ff.setInitVal(2*(i+1));ff.result=1;for(int j=2;j<=ff.initVal;j++){ff.result*=j;}ff.print();}//end for()}//end main() }//习题3.5public class MathRandomTest {public static void main(String[] args) {int count=0,MAXof100,MINof100;int num,i;MAXof100=(int)(100*Math.random());MINof100=(int)(100*Math.random());System.out.print(MAXof100+" ");System.out.print(MINof100+" ");if(MAXof100>50)count++;if(MINof100>50)count++;if( MAXof100<MINof100){num=MINof100;MINof100=MAXof100;MAXof100=num;}//end if()for(i=0;i<98;i++){num=(int)(100*Math.random());System.out.print(num+((i+2)%10==9?"\n":" "));if(num>MAXof100){MAXof100=num;}else if(num<MINof100){MINof100=num;}if(num>50){count++;}}//end for()System.out.println("the max of 100 random integers is "+MAXof100);System.out.println("the min of 100 random integers is "+MINof100);System.out.println("the number of random more than50 is "+count); }//end main()}//end public class MathRandomTest//习题3.7public class PrintAst {public void printAstar() {System.out.print("*");}public void printSpace() {System.out.print(" ");}- 18 -public static void main(String[] args) {PrintAst pa = new PrintAst();int initNum = 13;for (int i = 1; i <= initNum / 2 + 1; i++) {for (int n = 1; n <= i; n++) {pa.printSpace();pa.printSpace();}for (int m = 1; m <= initNum - 2 * i + 2; m++) {pa.printSpace();pa.printAstar();}System.out.println();} //end forif (initNum % 2 == 0) {for (int i = 1; i <= initNum / 2; i++) {pa.printSpace();pa.printSpace();}pa.printSpace();pa.printAstar();pa.printSpace();pa.printAstar();System.out.println();}for (int i = initNum / 2 + 2; i <= initNum; i++) {for (int n = 1; n <= initNum - i + 1; n++) {pa.printSpace();pa.printSpace();}for (int m = 1; m <= 2 * i - initNum; m++) {pa.printSpace();pa.printAstar();}System.out.println();} //end forSystem.out.println();} //end main()} //end public class PrintAst//习题3.8public class PrintTriag {public void printAstar() {System.out.print("*");}public static void main(String[] args) {int initLine = 10;int initNum = 10;PrintTriag pt = new PrintTriag();for (int i = 0; i < initLine; i++) {for (int j = 0; j < initNum - i; j++) {pt.printAstar();}System.out.println();}}//end main()}//end public class PrintTriag习题3.9import java.util.*;public class MultipleT able {public void printFormula(int i,int j,int res){ System.out.print(i+"*"+j+"="+res+" "); }public static void main(String[] args) {MultipleT able mt=new MultipleT able();int initNum=9;int res=0;for(int i=1;i<=initNum;i++){for(int j=1;j<=i;j++){res=i*j;mt.printFormula(i,j,res);}System.out.println();}//end for}//end main()- 20 - }//end public class MultipleT able习题3,10import java.io.*;public class HuiWen {boolean isHuiWen(char str[], int n) {int net = 0;int i, j;for (i = 0, j = n - 1; i < n / 2; i++, j--) {if (str[i] == str[j]) {net++;} //end if} //end forif (net == (int) (n / 2)) {return true;} //end ifelse {return false;}} //end boolean isHuiWen(char str[], int n)public static void main(String[] args) {HuiWen hw1 = new HuiWen();String pm = "";try {InputStreamReader reader = new InputStreamReader(System.in); BufferedReader input = new BufferedReader(reader);System.out.print("give your test string:\n");pm = input.readLine();System.out.println(pm);} //end trycatch (IOException e) {System.out.print(e);} //end catchboolean bw = hw1.isHuiWen(pm.toCharArray(), pm.length()); if (bw == true) {System.out.println("是回文");}else {System.out.println("不是回文");}} //end main()} //end public class HuiWenimport java.io.*;public class HuiWen2 {String reverse(String w1){String w2;char[]str1=w1.toCharArray();int len=w1.length();char[]str2=new char[len];for(int i=0;i<len;i++){str2[i]=str1[len-1-i];}w2=new String(str2);return w2;}public static void main(String[] args) {HuiWen2 hw1 = new HuiWen2();String pm = "";try {InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your test string:\n");pm = input.readLine();} //end trycatch (IOException e) {System.out.print(e);} //end catchString w2=hw1.reverse(pm);if(pareTo(pm)==0){System.out.println("是回文");}else {System.out.println("不是回文");}}}//习题3.11import java.io.*;public class PrimeNumber {- 22 -private int pm;public void setPm(int pm){this.pm=pm;}public boolean isPrime(){boolean bl=true;int i=2;for(i=2;i<=Math.sqrt(pm);){if(pm%i==0){bl=false;break;}else{i++;}}//end forreturn bl;}//end public boolean isPrime()public static void main(String[] args) {PrimeNumber prim=new PrimeNumber();int testNum=0;try{InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your test number:\n");testNum=Integer.parseInt(input.readLine());}//end trycatch(IOException e){System.out.println(e);}//end catchprim.setPm(testNum);boolean bl=prim.isPrime();if(bl==true){System.out.println(testNum+"是质数");}else {System.out.println(testNum+"不是质数");}}//end main }//end public class PrimeNumber习题3.12import java.io.*;public class Tempconverter {double celsius(double y){return ((y-32)/9*5);}public static void main(String[] args) {Tempconverter tc=new Tempconverter ();double tmp=0;try{InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your fahrenheit number:\n");tmp=Double.parseDouble(input.readLine());}//end trycatch(NumberFormatException e){System.out.println(e);}//end catchcatch(IOException e){System.out.println(e);}//end catchSystem.out.println("the celsius of temperature is "+tc.celsius(tmp));}//end main()}//end public class Tempconverter习题3.13import java.io.*;public class Trigsquare {double x, y, z;Trigsquare(double x, double y, double z) {this.x = x;this.y = y;this.z = z;}boolean isTriangle() {boolean bl = false;if (this.x > 0 && this.y > 0 && this.z > 0) {if ( (this.x + this.y) > this.z && (this.x + this.z) > this.y && (this.z + this.y) > this.x) {bl = true;} //ebd ifelse {bl = false;} //end else} //end if(this.x>0&&this.y>0&&this.z>0)return bl;} //end boolean isTriangle()double getArea() {double s = (this.x + this.y + this.z) / 2.0;return (Math.sqrt(s * (s - this.x) * (s - this.y) * (s - this.z)));} //end double getArea()public static void main(String[] args) {double s[] = new double[3];try {InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("输入三角形的三边的长度:\n");for (int i = 0; i <= 2; i++) { //输入三个数s[i] = Double.parseDouble(input.readLine());} //end for} //end trycatch (NumberFormatException e) {System.out.println("format error!!!");} //end catch- 24 - catch (IOException e) {System.out.print(e);} //end catchTrigsquare ts = new Trigsquare(s[0], s[1], s[2]);if (ts.isTriangle() == true) {System.out.println("三角形的面积是" + ts.getArea());} //end ifelse {System.out.println("输入的三边不能组成三角形!!");} //end else} //end main()} //end public class Trigsquare//习题3.14import java.util.*;import java.io.*;import java.util.Date;import java.text.*;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.GregorianCalendar.*;。

Java程序设计教程与实训(第2版)习题参考答案(1-9章)

Java程序设计教程与实训(第2版)习题参考答案(1-9章)

各章参考答案(1-9章)第一章【习题内容】1. Java语言有哪些特点?2.简述Java的运行机制。

3.简述Java应用程序的开发过程。

4.在计算机上安装、配置Java运行环境,并编辑运行本章中的例程。

【参考答案】1.面向对象、语法简单、平台无关性、安全性、分布式应用、多线程2. Java程序的运行必须经过编写、编译、运行三个步骤。

编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。

编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。

Java虚拟机(JVM)是运行Java程序的软件环境,Java解释器就是Java虚拟机的一部分。

在运行Java 程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,JVM把不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。

3.(1)安装JDK(2)配置环境变量(3)使用记事本编写java源文件(4)使用javac 编译java源文件(5)使用java运行java程序。

4.略。

第二章【习题内容】1. 现有语句:String s = "Example"; 则下面哪些语句是合法语句?A. s >>> = 3;B. s[3] = "x";C. int i = s.length();D. String t = "For " + s;E. s = s + 10;2.下面哪些是Java保留字?A. runB. defaultC. implementD. import3.下面声明float变量的语句合法的有:A. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;4.以下哪两个表达式是等价的:A. 3/2B. 3<2C. 3*4D. 3<<2E. 3*2^2F. 3<<<25.分析下列程序的执行结果:(1)public class TestA{public static void main(String args[]){int i = oxFFFFFFF1;int j = ~i;System.out.println("j=" + j);}}(2)public class TestB{public static void main(String[] args){System.out.println(6 ^ 3);}}(3)public class FooBar{public static void main(String[] args){int i = 0, j = 5;tp:for(; ; i++){for( ; ; --j)if(i > j)break tp;}System.out.println("i=" + i + ",j=" + j);}}(4)public class TestC{public static void main(String[] args){int i = 1, j = 10;do{if(i++ > --j)continue;}while(i < 5);System.out.println("i=" + i + " j=" + j);}}【参考答案】1. C、D、E2.B、D3.A、D、F4.C、D5.(1)j=14(2)5(3)i=0,j=-1(4)i=5 j=6第三章【习题内容】1.什么叫引用类型,对象是引用类型吗?2.Java的访问限定修饰符有几种,各自的访问权限是什么?3.什么是类成员,什么是实例成员?它们之间有什么区别?4.如何创建自己的包,如何引入包?5.下面哪一个是类Myclass的构造方法?class Myclass{public void Myclass(){}public static Myclass(){}public Myclass(){}public static void Myclass(){}}6.设计一个动物类,它包含动物的基本属性,例如名称、身长、重量等,并设计相应的动作,例如跑、跳、走等。

《Java面向对象程序设计》(第2版)课后答案

《Java面向对象程序设计》(第2版)课后答案

Java面向对象程序设计(编著耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。

(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。

(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。

应用程序中可以没有public类,若有的话至多可以有一个public类。

4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5. B6.Java源文件的扩展名是.java。

Java字节码的扩展名是.class。

7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。

习题21. D2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。

对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。

Java语言程序设计(第2版)第1-6章 课后习题答案

Java语言程序设计(第2版)第1-6章 课后习题答案

第1章Java语言概述选择题1-1 在下列概念中,Java语言只保留了(B)A. 运算符重载B. 方法重载C. 指针D. 结构和联合1-2 下列关于Java语言特性的描述中,错误的是(D)A. 支持多线程操作B. Java程序与平台无关C. Java和程序可以直接访问Internet上的对象D. 支持单继承和多继承1-3 下列关于Java Application程序在结构上的特点的中,错误的是(C)A. Java程序是由一个或多个类组成的B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java程序的文件名要与某个类名相同D. 组成Java程序的多个类中,有且仅有一个主类1-4 Java程序经过编译后生成的文件的后缀是(C)A. .objB. .exeC. .classD. .java1-5 下列关于运行字节码文件的命令行参数的描述中,正确的是(A)A. 第一个命令行参数(紧跟命令字的参数)被存放在args[0]中B. 第一个命令行参数被存放在args[1]中C. 命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关判断题1-1JavaC++的语言之前问世的。

(错)1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。

(对)1-3Java语言中取消了联合的概念,保留了结构概念。

(错)1-4Java语言中数据类型占内在字节数与平台无关。

(对)1-5Java语言中可用下标和指针两种方式表示数组元素。

(错)1-6Java语言的源程序不是编译型的,而是编译解释型的。

(对)1-7操作系统中进程和线程两个概念是没有区别的。

(错)1-8Java语言既是面向对象的又是面向网络的高级语言。

(对)1-9Java程序分为两大类:一类是Application程序,另一类是Applet程序。

前者又称Java应用程序,后者又称为Java小应用程序。

(对)1-10Java Application程序是由多个文件组成的,其中可以有也可以没有主文件。

Java第2版-习题参考答案

Java第2版-习题参考答案

习题参考答案——Java程序设计实用教程(第2版)第1章绪论1.1 (1)简单性——Java对系统软、硬件要求低;也比较容易学习。

(2)面向对象——Java是纯面向对象的语言。

(3)分布性——Java是面向网络的语言;支持数据分布和操作分布。

(4)鲁棒性——说明Java的健壮性很好,不会轻易造成系统崩溃。

(5)安全性——在防止非法入侵方面表现突出。

(6)体系结构中立——可以在任意的处理器上运行,也可在不同的平台上运行。

(7)可移植性——采用Java虚拟机机制,体现Java最初的开发理念,可跨平台运行。

(8)解释型——Java解释器直接对Java字节码进行解释执行,在单机上运行时速度较慢。

(9)高性能——由于Java字节码的设计,使得它能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。

用Java编写的程序在网络上运行时,其运行速度快。

(10)多线程——在Java中内置了对多线程的支持,使用多线程机制提高了程序性能,可以充分利用CPU。

(11)动态性——Java自身的设计使得它更适合于不断发展的环境,在Java类库中可以自由地加入新的方法和实例变量,而不会影响用户应用程序的执行。

1.2 Java在语法中取消了C/C++中具有的不安全的特性,如取消了指针,使得非法访问被杜绝。

用户不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。

1.3 主要是由于Java程序可以方便地被移植到网络上的不同机器。

另外,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。

1.4 对象是类的特例。

1.5 略。

1.6 略。

第2章绪论2.1 略。

2.2 略。

2.3 进行SET PA TH设置是为了让系统找到Java.exe、Javac.exe在什么文件夹中;SET CLASSPA TH设置的作用是查找类路径变量的。

2.4 Java程序被分为两类,一类是Java Application程序,另一类是Java Applet程序。

Java语言程序设计第2版(郑莉)课后习题答案

Java语言程序设计第2版(郑莉)课后习题答案

Java语言‎程序设计第2‎版(郑莉)第二章习题答‎案1.什么是对象、类,它们之间的联‎系?答:1)对象是包含现‎实世界物体特‎征的抽象实体‎,它反映系统为‎之保存信息和‎与它交互的能‎力。

对象是一些属‎性及服务的封‎装体,在程序设计领‎域,可以用“对象=数据+作用于这些数‎据上的操作”来表示。

现实生活中对‎象是指客观世‎界的实体;在程序中对象‎是指一组变量‎和相关方法的‎集合。

2)类是既有相同‎操作功能和相‎同的数据格式‎的对象的集合‎与抽象!3)两者的关系:对象是类的具‎体实例.。

2.什么是面向对‎象的程序设计‎方法?它有那些基本‎特征?答:面向对象程序‎设计从所处理‎的数据入手,以数据为中心‎而不是以服务‎为中心来描述‎系统。

它把编程问题‎视为一个数据‎集合,数据相对于功‎能而言,具有更强的稳‎定性。

它的特征:抽象,封装,继承,多态。

3(无用)4.请解释类属性‎、实例属性及其‎区别。

答:实例属性,由一个个的实‎例用来存储所‎有实例都需要‎的属性信息,不同实例的属‎性值可能会不‎同。

5.请解释类方法‎、实例属性及其‎区别。

答:实例方法表示‎特定对象的行‎为,在声明时前面‎不加stat‎i c修饰符,在使用时需要‎发送给一个类‎实例。

类方法也称为‎静态方法,在方法声明时‎前面需加st‎a t ic修饰‎符,类方法表示具‎体实例中类对‎象的共有行为‎。

区别:实例方法可以‎直接访问实例‎变量,调用实例方法‎,实例方法可以‎直接访问类变‎量,调用类方法;类方法可以直‎接调用类变量‎和类方法,类方法不能直‎接调用实例变‎量和实例方法‎;6.类的访问控制‎符有哪几种?具体含义及其‎区别。

答:类的访问控制‎符只有pub‎l ic(公共类)及无修饰符(默认类)两种。

区别:当使用pub‎l ic修饰符‎时表示所有其‎他的类都可以‎使用此类;当没有修饰符‎时,则只有与此类‎处于同一包中‎的其他类可以‎使用类。

7类成员的访‎问控制符有哪‎几种?他们对类成员‎分别有哪些访‎问限制的作用‎?答:类成员的访问‎控制符有public‎,privat‎e,protec‎t e及无修饰‎符.public‎(公有的):用publi‎c修饰的成分‎表示公有的,也就是它可以‎被其他任何对‎象访问(前提是对累成‎员所在的类访‎问有访问权限‎).Privat‎e(保护的):类中限定为p‎r ivate‎的成员只能被‎这个类本身访问,在类外不可见‎。

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

Java面向对象程序设计(编著耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。

(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。

(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。

应用程序中可以没有public类,若有的话至多可以有一个public类。

4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5.B6.Java源文件的扩展名是.java。

Java字节码的扩展名是.class。

7.D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。

习题21.D2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。

对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。

4.public class Xiti4{public static void main (String args[ ]){char ch1='你',ch2='我',ch3='他';System.out.println("\""+ch1+"\"的位置:"+(int)ch1);System.out.println("\""+ch2+"\"的位置:"+(int)ch2);System.out.println("\""+ch3+"\"的位置:"+(int)ch3);}}5.数组名字.length6.数组名字.length7.【代码1】A,65【代码2】-127【代码3】123456.783,123456.783128.【代码1】false【代码2】true【代码3】false【代码4】3【代码5】4.4【代码6】8.8习题3输出110if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。

2.你好好酷!!3.public class Xiti3_3{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='а',cEnd='я';startPosition=(int)cStart; //cStart做int型转换据运算,并将结果赋值给startPosition endPosition=(int)cEnd ; //cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("俄文字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';c=(char)i; //i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}4.public class Xiti4{ 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);}}5.class Xiti5{ 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);}}}}6.class Xiti6{ public static void main(String args[]){ double sum=0,a=1,i=1;while(i<=20){ sum=sum+a;i++;a=(1.0/i)*a;}System.out.println("使用while循环计算的sum="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的sum="+sum);}}7.public class Xiti7{ 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);}}}8.方法之一import java.util.Scanner;public class Xiti8{ public static void main (String args[ ]){System.out.println("请输入两个非零正整数,每输入一个数回车确认");Scanner reader=new Scanner(System.in);int m=0,n=0,temp=0,gy=0,gb=0,a,b;a=m = reader.nextInt();b=n = reader.nextInt();if(m<n){ temp=m;m=n;n=temp;}int r=m%n;while(r!=0){ n=m;m=r;r=m%n;}gy=n;gb=a*b/gy;System.out.println("最大公约数:"+gy);System.out.println("最小公倍数:"+gb);}}8.方法之二import java.util.Scanner;public class Xiti8 {public static void main (String args[ ]){System.out.println("请输入两个非零正整数,每输入一个数回车确认");Scanner reader=new Scanner(System.in);int m=0,n=0,t=0,gy=0,gb=0;m = reader.nextInt();n = reader.nextInt();if(m>n){t=m;m=n;n=t;}for(int i=1;i<=m;i++){if(m%i==0 && n%i==0){gy=i;}}gb=m*n/gy;System.out.println(m+","+n+"的最大公约数为"+gy);System.out.println(m+","+n+"的最小公倍数为"+gb);}}9.public class Xiti9{ public static void main(String args[]){ int n=1;long sum=0,t=1;t=n*t;while(true){ sum=sum+t;if(sum>9999)break;n++;t=n*t;}System.out.println("满足条件的最大整数:"+(n-1));}}// 1至7的阶乘和是sum=5913.0 // 1至8的阶乘和是sum=46233.01.用该类创建对象时。

2.所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。

构造方法可以重载。

3.可以。

不可以。

4.不可以。

5.成员变量又分为实例变量和类变量,用static修饰的变量是类变量。

那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。

也就是说对象共享类变量。

6.C,D7.【代码1】,【代码4】8.sum=-1009.2710. **20##1001.如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。

继承的成员或方法的访问权限保持不变。

如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public 方法为子类的方法,继承的成员或方法的访问权限保持不变。

如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。

只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。

相关文档
最新文档