当前位置:文档之家› java程序设计实用教程第版课后答案

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

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

第一章

1.Java具有那些适合在Internet环境中的特点

【答】简单性和完全面向对象,平台无关性,安全性和可靠性,多线程,高效的网络编程。

2.Java保留、放弃了C/C++语言中哪些语法和面向对象机制为什么需要这样做【答】在语法规则方面,Java语言放弃了全程变量、goto语句、宏定义、全局函数以及结构、联合和指针数据类型,使Java语言更简单、更精练。

在面向对象概念方面,Java语言放弃了多元继承、友元类和运算符重载,采用“单重继承+接口”的方式代替多重继承,提供语言级的内存自动管理和异常处理方式,使Java语言更健壮、更安全、更高效。

3.Java对原程序文件的命名规则有什么要求源程序文件编译后生成什么文件【答】要求:源程序文件与类同名,文件扩展名为.java;编译后生成字节码文件(*.class)。

4.Java程序的运行机制是怎样的与C++或其他语言有什么不同

【答】Java的每一个类都有一个class文件和它对应,Java在程序的启动的时候将程序运行需要用到的类加载到虚拟机中,根据Java的虚拟机规范进行连接(动态连接),程序的组装是在运行的时候完成的

C++和其他的编译型的语言一样,它的程序的组装方式是一种传统的组装方式。C++在编译的时候生成适用于某一平台的二进制代码,在连接的时候找到需要调用的库,然后将这些库中的代码连接进可执行程序之中,生成的可执行程序运行速度非常的快,但是可执行代码已经变成了一个整体,不可能再分开

5.什么是平台无关性Java是怎样实现平台无关性的

【答】平台无关性即Java程序的运行不依赖于操作系统。Java采用虚拟机技术实现平台无关性。程序由虚拟机解释执行,不同的操作系统上运行不同版本的Java 虚拟机。

6.Java应用程序由哪两种形式他们的运行方式有什么不同

【答】Application和applet两种形式,其中application是能够独立运行的应用程序,既可以以DOS的命令方式运行,也可以以图形用户界面方式运行。Applet 是可以嵌入页面的最小应用程序,不能独立运行,必须嵌入超文本中,由浏览器显示运行。

7.什么是解释执行Java怎样解释执行两种应用程序

【答】解释执行即将字节码解释成本地机器码并执行。

Java源程序文件经编译后生成字节码文件,若是application应用程序,则将字节码文件交由Java解释器解释执行,最后在windows操作系统上运行。若是applet应用程序,则将字节码文件嵌入超文本文件并下载到web浏览器上,最后由windows操作系统中的Java虚拟机运行。

8.作为一个软件开发人员,应该具备那些基础知识用以开发windows应用程序【答】略

第2章

1.标示符和关键字在定义和使用方面有何区别

【答】定义方面:标示符是用户定义的、以字母开头的字母数字序列,关键字是由Java语言定义的、具有特定含义的英文单词。

使用方面:标示符用于命名变量、常量、类、对象等元素,每一个关键字都有特定的含义,不能被赋予别的含义。

2.Java语言的基本数据类型有哪些引用数据类型有哪些

【答】基本数据类型有:整数类型byte、short、int、long,浮点数类型float、double,字符类型char,布尔类型boolean;引用数据类型包括数组(array)、类(class)和接口(interface)

3.试分析基本数据类型与引用数据类型的主要特点,并说明使用这两种变量有哪些差别【答】基本数据类型的变量保存数据值,而引用数据类型的变量保存地址。4.算术运算、关系运算、逻辑运算和位运算各有哪些运算符

【答】算术运算:单目运算符有+(正)、—(负)、++(自增)、——(自减),双目运算符有+(加)、—(减)、*(乘)、/(除)、%(取余)

关系运算:=(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)都是双目运算

逻辑运算:&(与)、|(或)、!(非)、^(异或)、&&(条件与)、||(条件或),其中!是单目运算,其它都是双目运算

位运算:~(非)、&(与)、|(或)、^(异或)、<<(左移位)、>>(右移位)、>>>(无符号移位)

5.程序中为什么需要常量和变量声明常量或变量时,为什么必须给出其所属的数据类型

【答】在程序中使用的数据大多需要经常变化,用常量值表示显然不够,因此每一种算法语言都提供常量和变量来存储数据。

为了确定常量或变量的数据性质、取值范围、以及它们占用的内存单元的字节数和它们参加的合法运算和操作。

6.什么是变量的作用域,声明变量时,如何确定变量的作用域

【答】变量的作用域是指其作用范围。变量声明的位置决定了它的作用域

7.设i是一个整数类型变量,写出下列问题对应的表达式

(1)判断i为奇数或偶数;

【答】i%2==0 ength;j++) ength;j++)

ength;j++) 员变量

this.成员方法([参数列表])注意:Java中的this是引用方式,不是C++中的指针方式。

(3)this引用还可以用在重载的构造方法中,调用本类已定义好的构造方法。语法格式如下:

this([参数列表])注意:在构造方法中,this()引用必须是第一行语句。3-9 说明类成员与实例成员的区别。

【答】Java的类中可以包括两种成员:实例成员和类成员。

实例成员是属于对象的,实例成员包括实例成员变量和实例成员方法。类成员是属于类的,需要用关键字static标识,也称为静态成员。具体区别如下:

1.实例成员变量与类成员变量

(1) 两者声明时的差别。当一个类声明成员变量时,没有使用关键字static 声明的为实例成员变量,使用关键字static声明的为类成员变量。

(2) 两者存储结构的差别。当创建一个对象时,系统会为每一个对象的每一个实例成员变量分配一个存储单元,使得属于不同对象的实例成员变量有不同的值;而为每一个类成员变量只分配一个存储单元,使得所有对象公用一个类成员变量。

(3) 两者引用方式的差别。实例成员变量属于对象,必须通过对象访问;类成员变量属于类,既可以通过对象,也可以通过类访问。

2.实例成员方法与类成员方法

(1) 两者声明时的差别。当一个类声明成员方法时,没有使用关键字static 声明的为实例成员方法,使用关键字static声明的为类成员方法。

(2) 两者方法体中语句的差别。类成员方法只能访问类成员变量;实例成员方法既可以访问类成员变量,也可以访问实例成员变量。在实例成员方法体中,可以使用this引用指代当前对象;而在类成员方法体中,则不能使用this引用。

(3) 两者引用方式的差别。实例成员方法必须通过对象访问;类成员方法既可以通过对象,也可以通过类访问。

3-10 什么是继承继承机制的作用是什么子类继承了父类中的什么子类不需要父类中的成员时怎么办能够删除它们吗Java允许一个类有多个父类吗

【答】继承性是面向对象的核心特征之一,是一种由已有的类创建新类的机制。被继承的类称为父类或超类,通过继承产生的新类称为子类或派生类。继承机制是面向对象程序设计中实现软件可重用性的最重要手段。

通过继承,子类自动拥有父类的所有成员,包括成员变量和成员方法(不包括构造方法)。子类可以更改父类成员,还可以增加自己的成员,但是,不能删除父类的成员。

在Java中以“单重继承+接口”的方式代替多重继承,不允许一个类有多个父类。

3-11 子类能够访问父类中什么样权限的成员

【答】虽然子类继承了父类的成员变量和成员方法,但并不是对所有的成员都有访问权限。访问权限说明如下:

(1)子类对父类的私有成员(private)没有访问权限。

(2)子类对父类的公有成员(public)和保护成员(protected)具有访问权限。

(3)子类对父类中缺省权限成员访问权限分为两种情况,对同一包中父类的缺省权限成员具有访问权限,而对不同包中父类的缺省权限成员没有访问权限。

3-12 如果子类声明的成员与父类成员同名会怎么样

【答】如果子类重定义父类的同名成员变量,则子类隐藏了父类成员变量。如果子类重定义父类的同名成员方法,当子类方法的参数列表与父类方法的参数列表完全相同时,则称子类成员方法覆盖了成员方法。如果子类重定义父类的同名成

员方法,当子类方法的参数列表与父类方法的参数列表不同时,子类继承了父类的成员方法,并重载了继承来的该成员方法。

3-13 super引用有什么作用super引用有几种使用方法

【答】当子类重定义了父类成员时,则存在同名成员问题。此时,在子类方法体中,成员均默认为子类成员。如果需要引用父类同名成员,则需要使用supper引用。在以下两种同名成员情况下,需要使用supper引用。

(1)子类隐藏父类成员时,如需要访问父类同名成员变量时,需要使用supper 指代父类的同名成员变量。语法如下:

super.成员变量

(2)子类覆盖父类成员时,如需要访问父类同名成员方法时,需要使用supper 指代父类的同名成员方法。语法如下:

super.成员方法([参数列表])

注意:super引用不能像this引用一样单独使用。

3-14 什么是多态性什么是方法的重载方法的重载和覆盖有何区别

【答】在面向对象语言中,多态是指一个方法可以有多种实现版本,类的多态性表现为方法的多态性。重载是指同一个类中的多个方法可以同名但参数列表必须不同。重载表现为同一个类中方法的多态性。覆盖是指子类重定义了父类中的同名方法。覆盖表现为父类与子类之间方法的多态性。

3-15 什么是运行时多态方法的重载和覆盖分别是什么时的多态性

【答】如果在编译时不能确定、只有在运行时才能确定执行多个同名方法中的哪一个,则称为运行时多态。方法的重载都是编译时多态。方法的覆盖变现出两种多态性,当对象获得本类的实例时,为编译时多态,否则为运行时多态。

3-16 什么是抽象类在什么情况下需要设计抽象类抽象类中是否必须有抽象方法【答】使用关键字abstract声明的类称为抽象类,使用abstract声明的成员方法为抽象方法。抽象类中可以不包含抽象方法,但包含抽象方法的类必须被声明为抽象类。

3-17 什么是最终类在什么情况下需要设计最终类最终类中是否必须有最终方法【答】使用关键字final声明的类称为最终类,最终类不能被继承。使用final 声明的成员方法称为最终方法,最终方法不能被子类覆盖。最终类中包含的都是最终方法,非最终类也可以包含最终方法。

3-18 将辗转相除法求两个整数的最大公因数gcd(a,b)用递归方法实现,辗转相除法题意见例,再设计下列方法:

(1)求两个整数a﹑ b的最小公倍数;

(2)求三个整数a﹑b﹑c的最大公约数。

〖解答〗程序如下。

public class GCD_recursion

{

public static int gcd(int a,int b) 者都包含抽象方法,约定多个类共用方法的参数列表和返回值。2.两者都不能被实例化。3.两者都是引用数据类型,其变量可被赋值为子类或实现接口类的对象。

不同点:1.抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。2.抽象类与子类之间采用单重继承机制;一个类实现多

个接口则实现了多重继承的功能。3.抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限由public和缺省两种,接口中成员的访问权限均是public。4.抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法必须全部是抽象方法,不能声明构造方法。5.抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。

4-2 为什么能够声明接口变量接口变量能够获得什么样的值

【答】接口是引用数据类型可以声明接口变量。接口变量能够获得实现接口的类的对象,也称为接口对象。

4-3 接口有哪些特点为什么需要声明借口接口是否具有继承性接口中能否写构造方法

【答】接口特点:

(1)接口及接口中成员的访问权限都是public

(2)接口中的成员方法都是公有的、抽象的实例成员方法,即默认修饰符为public abstract。

(3)接口中的所有抽象方法必须全部被实现接口的类覆盖。

(4)接口中的成员变量都是常量

(5)接口不能被实例化。接口中的方法都是抽象的,构造方法不是抽象的所有不能写构造方法

(6)接口是引用数据类型。

Java只支持单重继承,以“单重继承+接口”的方式代替多继承。接口可以继承一个已经存在的父接口。

4-4 什么是单重继承什么是多重继承类的层次体系为什么需要多重继承单重继承有什么缺点既然有缺点,为什么Java仍然采用单重继承Java怎样实现多重继承【答】单重继承就是一个类只能有一个父类。多继承就是可以有多个父类。现实中的对象往往表现出多种特性,用单重继承无法客观描绘,因此需要多重继承。但是C++的多重继承过于复杂,因此Java用“单重继承+接口”代替了多重继承,以提高运行效率,增加安全性,降低复杂性。

4-5 类与类之间存在哪几种关系

【答】类与类之间有继承关系,还存在嵌套关系。

4-6 在什么情况下需要声明内部类内部类有哪些特性

【答】Java不支持C++的结构(struct)类型,当实际中需要使用一个结构时,可以声明一个类;但当结构作为数组的元素类型时,或当一个类中需要使用结构时,可以将结构声明为内部类。内部类特性可参看课本P123。

4-7 为什么是包为什么需要包机制Java有哪些包各有什么功能

【答】从逻辑概念看,包是类的集合,一个包中包含多个类;从存储概念看,包是类的组织方式,一个包对应一个文件夹,一个文件夹中包含多个字节码文件;包与类的关系,就像文件夹与文件的关系一样。为解决字节码文件存放和类命名的问题,Java提供了包机制。Java的常用包及其作用可查看P130表4-1 。

4-8 Java的API采用什么组织方式怎样使用Java定义好的类

【答】Java语言的API按照功能划分成若干包,每个包都有许多公有的类和接口。如果需要使用已定义好的一个包中的类或接口,可以使用import语句声明。

4-9 Java声明Object类的作用是什么Object类中声明了哪些方法Object类在Java类层次体系中的地位是怎样的

【答】Object是Java中所有类的父类或祖先类,它定义了一个Java对象所需要的基本操作和属性。定义的方法有:()获得当前对象所在的类是什么、equals()比较两个对象是否相等、toString()将当前对象的信息用字符串描述、finalize()析构方法。

4-10 Java为什么需要声明基本数据类型的包装类基本数据类型的包装类有哪些【答】为实现完全面向对象的特性,Java为每个基本数据类型都声明有对应的一个类。公有8个基本数据类型的包装类:Byte、Short、Integer、Long、Float、Double、Character、Boolean

4-11 怎样将数值类型的数据转换成字符串怎样将字符串转换成数值类型的数据【答】Integer类的静态方法parseInt()和实例方法intValue()都可以将一个字符串转换成int值。Integer类的静态方法toBinaryString(int i)、toOctalString(int i)、(int i)可以将十进制i转化为二进制、八进制、十六进制、字符串。

4-12 Java为什么要将Math类声明为最终类Math类中有哪些常用方法

【答】Math类提供提供E、PI常量和一组固定数学函数。都是静态可以直接通过类名引用,不需要继承。常用方法有:(1)求绝对值abs(double a)(2)求最大值max(double a,double b)(3)求最小值min(double a,double b)(3)返回一个~之间的随机数random()

4-13 对数值﹑变量或对象进行比较操作,到底应该采用6个关系运算符还是调用equals()、compareTo()方法是否每个对象都可以调用equals()和compareTo()方法为什么这两个方法在进行比较操作时有什么差别它们在每个类中的含义都相同吗

【答】对数值、变量可以采用6个关系运算符,对象可以用后两者,但是并不是每个对象都可以调用这两个方法。具体用法及区别请看课本P133和P136.

4-14 System类、Class类和Runtime类各有哪些功能在之前的程序中已用到这些类的哪些常量或方法

【答】System类提供访问系统资源和标准输入/输出流的方法,之前用到了in和out常量。Class为类提供运行时信息,如名字、类型、以及父类等。Runtime类可直接访问运行时资源。

4-15 怎样表示日期与时间数据怎样引用包的类

【答】Java以一个长整型表示一个日期,该长整型表示从格林尼治时间1970-1-1 00:00:00 开始至某时刻的累积毫秒数。

4-16 泛型类有什么作用在什么情况下需要使用泛型类

【答】泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口、和方法的创建中,分别被称为泛型类、泛型接口、泛型方法。泛型类引入的好处不仅在于减少代码量,还在于提供了编译时期数据类型的检查功能,可以提前预知错误的发生,减少代码安全性,二是减少了强制转换类型。

第5章异常处理

5-1 程序中的错误有哪几种分别能够在什么时刻被发现

【答】程序错误按照性质可分为3类:语法错、语义错、逻辑错。

1 语法错:违反语法规范的错误成为语法错( syntax error ),这类错误通常在编译时发现,又称为编译错,如标识符未声明、表达式中运算符与操作数类型不兼容、变量赋值时的类型与声明时的类型不匹配、括号不匹配、语句末缺少分号等。

2 语义错:如果在程序的语法上正确,但在语义上存在错误,则称为语义错( semantic error),又称为运行错(run-time error),语义错不能被编译系统发现,只有到程序运行时才能被发现,如输入数据格式错、除数为0错、给变量赋予超出其范围的值错等。

3 逻辑错:如果程序通过编译,可运行,但运行结果与期望值不符,则这类错误称为逻辑错(logic error),例如,由于循环条件不正确而没有结果,循环次数不对等因素导致计算结果不正确等。

5-2 Java为什么要采用异常处理机制Java的异常处理是怎样实现的异常处理机制能够解决程序中遇到的所有错误吗哪些错误不是异常处理能够解决的【答】异常处理和捕获和处理运行时错误的一种机制。异常处理机制使程序具有处理错误的能力。即使发生了运行错,应用程序能够捕获异常并及时处理异常,使程序从运行错误中很好地恢复并继续运行,而不会导致程序运行非正常终止。而且如果当前方法没有能力处理异常,还可以将异常转交给调用者处理。异常处理机制将运行时错误封装成若干错误类和异常类,并提供异常处理语句用于处理在程序中实现对运行时错误的发现和及时处理。异常处理机制并不能解决程序中的所有错误,例如内存溢出、栈溢出等。

5-3 请说出5个Java的异常类。

【答】算术异常ArithmeticException、空对象异常NullPointerException、类型强制转换异常ClassCastException、负数组长度异常NegativeArraySizeException、数组下标越界异常ArrayIndexOutOfBundsException等

5-4 请问运行没有main()方法的类会怎样

【答】此类错误是Error类,当运行没有main()方法的类时,则产生类定义未找到的错误(NoClassDefFoundError)。

5-5 举例说明你在调试程序时,遇到过哪些错误和异常,采取什么办法解决问题的。【答】1.无效的游标状态

修改:首先查看ResultSet是否为空,若为空则修改之;其次,也是我遇到的,就是:举个例子说明,如下

(1);

(3);ET中的DataReader类后才恍然大悟,原来,ResultSet的游标每向后移动,前面的数据就会被丢弃掉,这样做有利于提高访问速度。

2. ResultSet is closed

原因:一个Statement只能维持一个ResultSet为打开状态,后面的覆盖前面的,举个例子:

ResultSet rs1 = ();

ResultSet rs2 = ();

String s = (1);连接占线导致另一个 hstmt

原因:一个Connection只能维持一个Statement为打开状态

一个例子:

Statement stmt1 = ();

Statement stmt2 = ();

(sql);初始化的变量(虽然已经声明)

2.使用了未初始化的对象(虽然已经声明)

注:引起这个异常的根本原因有可能隐藏的很深,空指针异常只不过是个表象而已(又被不幸的我遇到了).

5-6 如何处理除数为0异常

【答】进行除数运算时,先判断除数是否为0,若为0,则跳出提示。

5-7 怎样处理数组下标异常

【答】使用数组前先,判断下标是否小于数值长度,若不小于则提示数组下标有误。

5-8 说明采用什么语句能够捕获并处理异常

【答】 Java提供try-catch-finally语句来捕获和处理一个或多个异常。其中,try、catch、finally是关键字。catch字句可以有一个或多个,但至少要有一个catch字句,finally字句可以省略。

5-9 为什么将字符串转换成数值类型时会抛出异常抛出什么异常

【答】并不是所有的字符串都能转换成数值型,当遇到一个不能转转换成数值型的字符串时,Java抛出NumberFormatException异常。

5-10 说明throw语句与throws子句的区别。

【答】用于抛出方法层次的异常,并且直接由些方法调用异常处理类来处理该异常,所以它常用在方法的后面。比如 public static void main(String[] args) throws SQLException

用于抛出代码层次的异常,常用于方法块里面的代码,常和try...catch ....语句块搭配实用,比throws的层次要低。

5-11 什么情况下需要自定义异常类

【答】当Java提供的异常类不能满足需要时,程序需要对自己抛出的异常类进行特殊处理,则可以自定义异常类。

第6章图形用户界面

6-1 什么是组件组件类与普通类有什么不同

【答】组件是构成图形用户界面的基本成分和核心元素;组件是具有以下特性的对象:运行时可见,能拥有并管理其他组件,在窗口中可操纵,可获得输入焦点等。组件类Component是一个抽象类,是AWT组件类层次结构的根类,它提供对组件操作的通用方法。

6-2 设计Windows应用程序的图形用户界面需要哪些基本知识

【答】需要掌握Java组件的使用方法,理解委托事件处理模型,掌握多种布局方式。

6-3 什么是容器组件它有什么特点Java提供了哪些容器组件

【答】容器组件是一种能够容纳其他组件的特殊组件。特点:能容纳其他组件,并在其可视区域内显示这些组件。Java提供了窗口(window)和面板(panel)两种容器。

6-4 窗口与对话框有什么不同框架与面板有什么不同

【答】对话框是窗口类的子类,对话框也是一种可移动的窗口,不能作为应用程序的主窗口,它依赖于一个框架窗口而存在,当框架窗口关闭时,对话框也关闭。框架类是一种带标题栏并且可以改变大小的窗口;它是窗口类的子类,所以它可以独立存在,可被移动,可被最大化和最小化,有标题栏、边框、可添加菜单栏;而面板不能独立存在,必须包含在另一个容器里,面板没有标题,没有边框,不可添加菜单栏。

6-5 什么是事件什么是事件源事件处理程序写在哪里

【答】事件是指一个状态的改变,或者一个活动的发生。产生事件的组件称为事件源。事件处理程序写在事件监听器接口中声明的方法中。如:单击事件的事件处理程序由ActionListener接口中的actionPerformed()方法实现。

6-6 如何理解Windows应用程序的图形用户界面是事件驱动的

【答】一个组件的多个事件之间,多个组件的多个事件之间,其事件处理方法的执行次序是有规律的:1.不同组件的事件或同一组件的不同事件具有约定的执行次序。2.各组件的事件处理方法是否执行以及执行次序,取决于用户操作。3.在一个事件处理方法中,程序按照语句的书写次序顺序执行。

6-7 说明Java的委托事件模型。

【答】事件源产生一个事件,并把这个事件发送到一个或多个监听程序,监听程序只是等待这个事件并处理它,然后返回。即程序把事件的处理“委托”给一段“代码”。

6-8 设计图形用户界面的Java应用程序,需要用到的组件分别在哪些包中事件分别在哪些包中

6-9 按钮组件能够注册哪些事件监听器文本行组件能够注册哪些事件监听器文本行和文本区组件能够响应的事件有什么不同

【答】按钮组件能够注册的事件监听器有ActionListener、ComponentListener、ItemListener等。文本行组件能够注册的事件监听器有

ActionListener、ComponentListener、TextListener等。文本行是单行文本编辑框,用于编辑一行字符串,文本区是一个多行文本编辑框,它的基本操作与文本行类似,增加的是滚动条的显示和操作。

6-10 是否可以对一个组件注册多个事件监听器

【答】可以。如果一个组件需要响应多个事件,则可以注册多个事件监听器。6-11 一个事件监听器是否可以处理多个组件上产生的操作

【答】一个事件监听器对应一个事件处理方法,如果多个组件产生的操作相同,则可以注册同一个事件监听器。

6-12 在事件处理方法中,怎样区分不同的事件源组件

【答】事件接口中的所有事件处理方法,都采用相应的事件对象e作为参数,用()方法可返回产生当前事件对象的事件源组件。

6-13 窗口上有哪些事件每种事件在什么时候被触发这些事件的触发次序是怎样的

【答】窗口上的事件有:

windowOPend,windowActivated,windowDeactivated,windowIconified,windo wDeiconified,windowClosing,windowClosed。每种事件的触发分别在:打开窗口、激活窗口、窗口失去焦点、窗口最小化、窗口恢复、关闭窗口时、关闭窗口后。触发次序与前述书写顺序相同。

6-14 Java有几种关闭窗口处理方式分别是怎样的分别适用于哪些窗口组件【答】Java有2种关闭窗口处理方式。第一种是设置窗口关闭时隐藏方式的setDefaultCloseOperation()方法,第二种是写窗口关闭事件处理程序即实现WindowListener接口中的windowClosing()方法。第一种适用于JFrame和JDialog 等窗口组件,第二种适用于Frame和Dialog等窗口组件。

6-15 Java的布局方式有什么特点Java提供了哪些布局方式

【答】特点:Java采用布局管理器对图形用户界面中的组件进行相对定位并自动改变组件大小,合理分布组件格局。当窗口大小改变时,各组件自身的大小将随之改变,而组件之间的相对位置不变,这样组件一般不会被覆盖。Java提供了FlowLayout、BorderLayout、GridLayout三种布局布局管理器类。

6-16 复选框和单选按钮有什么不同分别用于什么场合在事件处理程序中,怎样知道哪个复选框或单选按钮是选中的

【答】在同一组单选按钮中,任何时候最多只能有一个被选择,一旦选中一个单选按钮,则前一个选中的单选按钮会自动变为未选中状态。而复选框可多个同时被选中,且每个复选框选中与否的状态改变,并不影响其他复选框的状态。场合:单选按钮用来显示一组互斥的选择,复选框用来显示一组不互斥的选择。在事件处理程序中,用注册选择事件监听器的方法来判断复选框或单选按钮是否被选中。

6-17 如果一个编辑框用于输入数值,但程序运行时却输入了非数字字符,问结果会怎样程序中有哪些办法解决这个问题,怎样解决

【答】结果会因输入错误而突然停止运行。程序中可以用try—catch捕获、处理异常的方法来解决这个问题。当遇到输入错误时,Java将抛出异常,此时弹出一个提示信息对话框,提醒用户输入数据有错误,请用户重新输入。

6-18 如何将JComboBox编辑框中新输入的值,加入到下拉列表中去,并使新值与下拉列表中原有值不重复

【答】通过添加单击事件监听器将JcomboBox编辑框中新输入的值加入到下拉列表中。通过if语句来确保新值与下拉列表中原有值不重复。

6-19 如何使菜单项显现为分隔条状态如何使菜单项显现单选状态【答】实现JmenuItem()和addSeparator()方法使菜单项显现为分离条状态。实现JradioButtonMenuItem()方法使菜单项显现单选状态。

6-20 一个菜单中能否加入菜单项能否加入另一个菜单

【答】一个菜单中可以加入菜单项,可以加入另一个菜单。

窗口菜单与快捷菜单有什么差别

【答】窗口菜单是相对于窗口的,它出现在窗口的标题栏下,总是与窗口同时出现。而快捷菜单则是相对于某个指定组建的,当鼠标指向某个组件并单击右键时,则会弹出快捷菜单,一般比较简单。

在文本区中,单击右键时欲弹出一个菜单,该怎样设计

【答】可以在文本区添加一个快捷菜单(popMenu)。

如果窗口菜单中的某菜单项、快捷菜单中的某菜单项具有相同的菜单标题并执行相同的操作,应该如何设计

【答】可以给它们都注册单击事件监听器,那么在事件处理方法actionPerformed()中以()方法获得菜单项的标题,由于标题相同,可以执行相同的操作。

如果希望在组件上绘图,通常在哪些组件上绘图绘图程序写在哪里

根据以下极坐标放出,画出相应曲线图形。

1.星形线代码略运行结果如下

2.心形线

import .*;

import .*;

public class HeartJFrame extends JFrame implements ComponentListener,ItemListener

{

private JComboBox combobox_color;

public HeartJFrame()

{

super("心线");

(600,400);

(EXIT_ON_CLOSE);

(new FlowLayout());

Object data[] = {,,,};

combobox_color = new JComboBox(data);

(this);

(combobox_color);

(this);

(true);

}

public void paint(Graphics g)

{

int x0,y0;

x0=()/2;

y0=()/2;

((Color)());基米德螺线

import .*;

import .*;

public class HelixJFrame extends JFrame implements ComponentListener, ActionListener

{

private JRadioButton colors[]; dd(jpanel,"North");

ButtonGroup buttongroup = new ButtonGroup(); etForeground;

(colors[0]); ddActionListener(this);

colors[1] = new JRadioButton("green");

colors[1].setForeground;

(colors[1]);

(colors[1]);

colors[1].addActionListener(this);

colors[2] = new JRadioButton("blue");

colors[2].setForeground;

(colors[2]);

(colors[2]);

colors[2].addActionListener(this);

helix = new HelixCanvas;

().add(helix,"Center");

(true);

}

public void actionPerformed(ActionEvent e) sSelected())

;

if () == colors[1])

;

if () == colors[2])

;

(); 数螺线

5.双曲螺线

import .*;

import .*;

public class TestDui extends JFrame implements ComponentListener,ItemListener

{

private JComboBox combobox_color;

public TestDui ()

{

super("双曲螺线");

(600,400);

(EXIT_ON_CLOSE);

(new FlowLayout());

Object data[] = {,,,};

combobox_color = new JComboBox(data);

(this);

(combobox_color);

(this);

(true);

}

public void paint(Graphics g)

{

int x0,y0;

x0=()/2;

y0=()/2;

((Color)());努利双纽线

7.三夜玫瑰线

import .*;

import .*;

public class RoseJFrame_JColorChooser extends JFrame implements ComponentListener, ActionListener

{

private RoseCanvas rose;

private JButton button_color;

public RoseJFrame_JColorChooser()

{

super("三叶玫瑰线"); dd(jpanel,"North");

button_color = new JButton("选择颜色");

(button_color);

(this);

rose = new RoseCanvas;

().add(rose,"Center");

(true);

}

public void actionPerformed(ActionEvent e) 叶玫瑰线见课本。

第7章多线程

什么是进程什么是线程进程与线程的关系是怎样的

【答】进程:进程是一个可并发的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。

线程:线程是操作系统进程中能够独立执行的实体,是处理器调度和分派的基本单位。

线程是进程的组成部分,每个进程内允许包含多个并发执行的线程。

操作系统为什么要支持多线程技术

【答】操作系统采用进程机制能够减少程序并发时所付出的时空开销,使得并发粒度更细,并发性更好,提高了资源使用率和系统效率。

Java为什么要支持线程什么场合需要使用多线程程序设计

【答】支持多线程能充分发挥硬件的并发性,消除处理器和I/O设备的互等现象,提高系统效率。一般一下场合需要使用多线程:1、程序包好复杂的计算任务时,主要是利用多线程获取更所得CPU时间。2、处理速度较慢的外围设备。3、程序设计自身的需要。

Java提供了哪些接口和类实现多线程机制

一个线程对象的生命周期有哪几种状态构成各状态之间是如何变化的

【答】

线程对象的生命周期主要包括:新建态、就绪态和运行态、阻塞态和等待态、终止态。新建态通过start()方法是线程成为运行态,当运行态遇到sleep()或wait()方法时就进入等待态,而当sleep()时间到或通过notify()方法线程就又进入了运行态;当运行态遇到synchronized()方法时就进入阻塞态,当线程获得互斥锁使用权时就又到了运行态;当线程的run()方法结束时整个线程就进入了终止态,整个线程结束。

Java提供了哪些方法能够改变线程状态程序中能够调度线程立即执行吗

【答】Java中提供了start()方法来启动已创建的线程对象;sleep()方法使当前线程睡眠若干毫秒,线程有运行态进入等待态,但是不交出临界区的锁;yield() 方法暂停当前线程的执行,允许其他线程竞争CPU;stop()方法来结束一个线程;wait()方法将本线程设为等待态;notify() 方法来唤醒当前处于等待态的线程;interrupt()方法改变当前线程的中断状态,但是当前线程还可以继续执行。

什么是线程的优先级设置线程优先级有什么作用

【答】每个线程被执行的优先顺序即为线程的优先级,默认优先级为5。当创建了多个线程并要执行这些线程时,操作系统不知到底该执行哪个线程,当设置好优先级后,程序首先会执行优先级最高的线程,然后依次执行下去。这样处理器将会合理而且充实的额被利用,不会造成资源的浪费或者运行的混乱。

7.8线程按什么规则排队等待

【答】线程按优先级排队,线程调度语句优先级基础上的“先到先服务”原则多线程间共享数据时会发生怎样的并发执行错误

【答】当几个线程共享数据时,一个线程的执行可能影响其他线程的执行结果,并导致错误的程序运行结果。

在什么情况下需要采用线程同步机制

【答】当并发执行的多个线程间需要共享资源或交换数据时,各个线程执行时相互之间会干扰或影响其他线程的执行结果,这时就需要采用线程同步机制。

关键字synchronized是什么含义为什么wait()和notify()方法要与synchronized同时使用

【答】synchronized用于声明一段程序为临界区,使线程对临界资源采用互斥使用方式。

wait()和notify()不是属于线程类,而是每一个对象都具有的方法,而且这两个方法都和对象锁有关,有锁的地方必有synchronized()方法,故wait()和notify()方法要与synchronized同时使用。

明sleep()和wait()方法的异同。

【答】wait是Object类的方法,sleep与yield都是Thread类的方法。wait 调用的时候需要注意的是该方法是释放锁标志的,而sleep在调用的时候是紧紧抱着锁标志的,也就是等他完全执行完成了才可以让其他线程来访问的sleep 方法使当前运行中的线程睡眼一段时间,进入不可运行状态,这段时间的长短是由程序设定的,yield 方法使当前线程让出 CPU 占有权,但让出的时间是不可设定的。

一个对象为什么需要调用wait()方法使当前线程等待

【答】wait()使当前线程进入停滞状态时,还会释放当前线程所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用。当调用sleep()方法时,该线程不会释放当前线程所占有的“锁标志”。

什么是死锁什么情况下会死锁

【答】由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。

当多个线程同时被阻塞,他们中的一个或者全部都在等待某个资源被释放,由于线程被无限期地阻塞,因此程序处于非正常终止,才会产生死锁。

第9章输入/输出流与文件操作

什么是流流有什么用面向对象语言为什么需要流哪些场合需要流答:流是指一组有顺序、有起点和终点的字节集合,是对数据传输的总称或抽象(也就是数据在两个对象之间的传输称为流)。

流的作用就是使数据传输操作独立于相关设备。

在面向对象的程序设计中,数据的传输和流动具有广泛性,可以在内存与外部设备之间传输,还可以从内存到内存,甚至可以从一台计算机通过网络流向另一台计算机等,故面向对象语言采用流机制。

在标准输入/输出、在文件的读/写等操作中都需要流。

Java提供了哪些流类各种流类之间的关系是怎样的什么场合需要使用什么流类

答:Java中按照流的方向性,流分为输入流和输出流两大类。按照流中元素的基本类型,流分为字节流和字符流两大类。字节流类按照流的方向分为字节输入流类和字节输出流类,字符流类方向性分为字符输入流类和字符输出流类。以及文件操作类File,随机存取文件类RandomAccessFile.

其中InputStream类是所有字节输入流的根类,OutputStream类是所有字节输出流的根类;Reader类是所有字符输入流的根类,Writer类是所有字符输出流的根类。

操作系统中文件和目录概念是怎么样的Java提供了哪些对文件和目录操作的类程序中对文件和目录能够进行哪些操作如何操作

答:文件是信息的一种组织形式,是存储在外部存储介质上的具有标识名的一组相关的信息集合。目录是文件系统组织和管理文件的基本单位,保存它所管理的每个文件的基本属性信息(称为文件目录项或文件控制块)。

Java直接对文件的顺序存取和随机存取操作,提供了File类记载文件属性信息,对文件读/写操作时以流的形式。RandomAccessFile类以随机存取方式进行文件读/写操作。但在对文件操作过程中还需要使用文件过滤器接口和文件对话框类。在操作系统中,目录也是以文件的形式保存的,称为目录文件。故一个File对象也可以表示一个目录。

可以对文件进行读、写、删除、创建等操作,对目录可以读取、创建、删除等操作。应用程序通过调用操作系统提供的系统调用能够对文件及目录进行各种操作。

再打开、保存、复制文件时,需要读/写文件中的数据内容,这些操作由流实现,不同类型的文件需要使用不同的流泪。

流与文件操作有什么关系实际应用中将流类与文件操作结合起来能够实现哪些复杂问题如何实现

答:对文件的操作时通过流这个工具进行的。再打开、保存、复制文件时,需要读/写文件中的数据内容,这些操作由流实现,不同类型的文件需要使用不同的流泪。

什么是输入/输出什么是标准输入/输出Java怎样实现标准输入/输出

功能

答:数据由外部设备流向内存,这个过程称为输入;数据有内存流向外部设备,这个过程称为输出。

在计算机系统中,标准输入是从键盘等外部输入设备中获得数据,标准输出是向显示器或打印机等外部输出设备发送数据。

除了标准输入/输出及文件操作之外,还有那些应用中需要使用流答:在面向对象的程序设计中,数据的传输和流动具有广泛性,不仅可以在内存与外部设备之间传输,还可以从内存流向内存,甚至可以从一台计算机通过网络流向另一台计算机,因此各种不同的数据源的传输都需要采取不同的流机制来实现。

在“打开”、“保存”文件对话框中,设置“*.txt”等文件过滤器。

答:略

RandomAccessFile类和与File类有什么不同,进行读写操作时需要使用流吗

答:File类保存文件和目录的各种属性,在对文件的操作中,其中读/写文件的操作由字节流或字符流实现,通常是以顺序存取方式,如果要对文件进行随机存取即对一个文件同时进行读和写操作时就是用RandomAccessFile 类。它们在读写操作时都要用到流。

能否将一个对象写入一个随机存取文件

答:不能

Applet应用程序能否使用流与文件操作为什么不能

答:不能。

当创建文件流类或File类对象时,如果文件名为空,会怎样会抛出异常吗

答:

第10章网络通信

什么是URLJava提供哪些与URL有关的类

答:URL指定在Internet上的某个信息资源的地址,包含协议、主机、端口和文件名。在Java中提供与URL有关的类有URLConnection类。

说明URL类与URLConnection类各有什么功能。

举例说明哪些是正确的URL,哪些URL中有错误。当URL中有错误时,程序会怎样

当URL地址有错误时,抛出MalfromedURLException异常。

什么是Socket通信它有什么特点参与Socket通信的主体是谁答:Socket通信时基于TCP连接的两个过程之间的端-端通信,TCP连接提供数据通信所需的字节流服务。特点是Socket通信是双向的、可靠的。

Socket通信的基础是什么Socket通信是单向的还是双向的在Socket通信中,为什么需要指定端口号端口号由谁指定端口号的数据范围是怎样的能够使用哪些端口号

Java提供哪些类实现Socket通信每个类提供哪些功能

答:Java提供了ServerSocket类和Socket类,实现Socket通信。

ServerSocket类的功能:提供TCP连接服务、指定端口号等待客户端的连接请求停止客户端的连接请求;

Socket类的功能:制定主机地址和端口号,向服务器发出连接请求,连接服务器端和客户端并进行通信,建立字节输入/输出流,进行数据传输。

ServerSocket和Socket类中都有close()方法,两者有什么不一样答:ServerSocket类的close()方法:停止等候客户端的连接请求;Server 类的close()方法:关闭TCP连接。

第11章数据库应用

什么是数据库什么是数据库管理系统什么是数据库系统

【答】数据库是长期存储在计算机外存上的有结构的、可共享的数据集合。数据库管理系统是指数据库系统中对数据进行管理的软件系统,它是位于用户与操作系统之间的一层数据管理软件。数据库系统是采用数据库技术的计算机系统,包括数据库、数据库管理系统、应用程序、数据库管理员和用户。

什么是关系数据库系统关系模型有哪些特点用什么形式表达一个关系

【答】关系数据库系统是支持关系模型的数据库系统。关系模型用二维表格表示实体,用关键码进行数据导航。通常用二维表表示表示一个关系。

在关系模型中,表由哪些成分组成每个成分的作用是什么

【答】表由若干列组成,每一列表示实体的一个属性。

什么是主键主键表达关系的什么性质为什么每张表都必须设计主键使用主键时必须遵循什么完整性规则怎样为一个表声明主键

【答】主键是能够唯一标识实体的属性集。主键表达关系中实体的唯一性。每张表的主键用于区别表中的实体。使用主键时要遵循实体完整性规则。声明主键的语句如下:

sno char(9) primary key 该句表明列sno为表的主键。

什么是外键外键表达关系的什么性质在什么情况下需要设计外键使用外键时需要遵循什么完整性规则

【答】如果模式R中属性K是其他模式的主键,那么K在模式R中称为外关键字,简称外键。当两个表之间有联系时,应该设置外键。使用外键时应遵循参照完整性规则。

客户----服务器结构的关系数据库系统有什么特点由哪几部分组成各部分的功能是怎样的划分各部分的基本原则是什么

【答】客户—服务器结构的关系数据库系统的特点是数据集中,功能分布;由服务器和客户端组成;服务器完成DBMS的核心功能,客户端完成数据处理、数据表示、用户接口等功能;划分各部分的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即“功能分布”原则。

数据库应用程序为什么要连接数据库

【答】数据库具有数据独立性的特点。数据独立性是指应用程序与数据库的数据结构之间相互独立。这样,应用程序能够访问不同的数据库,数据库也能够支持由不同开发工具所设计出来的应用程序。但应用程序不能直接存取数据库,所以应用程序要指定需要访问的数据库,就必须在访问前先建立与数据库的连接。

关系数据库的标准语言是什么它有什么特点和功能由哪几部分组成

【答】关系数据库的标准语言是结构化查询语言SQL;

关系数据库的主要特点:

⑴关系中的每个属性必须是不可分割的数据单元(即表中不能再包含表)。

⑵关系中的每一列元素必须是类型相同的数据。

⑶同一个关系中不能有相同的字段(属性),也不能有相同的记录。

⑷关系的行、列次序可以任意交换,不影响其信息内容。

功能:处理数据库中的数据;

关系数据库由若干张表组成,表中记录一系列数据,除了数据之外,

关系数据库还可能包含安全信息和数据管理子程序。

SQL语言有哪些基本功能对应的语句有哪些

【答】基本功能:数据定义、查询、操纵和控制;

对应的语句有:

创建基本表:create table 表名

修改基本表:alter table 表名

删除基本表:drop table 表名

插入数据: insert into 表名

[(列1{,列2})]

values (值1{,值2})

修改数据:update 表名

set 列=表达式{,列=表达式}

[where 条件表达式]

删除数据:delete from 表名

[where 条件表达式]

查询数据:select [all|distinct]

列表达式{,列表达式}

from 表名

[where 条件表达式]

[group by 列 [having 条件表达式]]

[order by 列 [asc|desc]]

什么是ODBC它有什么特点和功能在什么情况下需要使用并能够使用ODBC 【答】ODBC是Microsoft公司于1992年提出的基于SQL的数据库连接标准。

特点:是一个分层体系结构,具有良好的互用性和可移植性;

功能:具备同时访问多种数据库的能力,从而克服了传统数据库应用程序的缺陷。对用户来说,ODBC驱动程序屏蔽掉了不同数据库

的差异;

如果要访问支持ODBC的数据库,而该数据库又在不支持OLE的服务器

上,那么ODBC是最好的选择,要处理SQL时也需要ODBC,ODBC是

Windows系统默认安装的一种工具,当安装成功Windows时,即安装了

ODBC,在“控制面板”的“管理工具”中即可看到“数据源(ODBC)”,

此时才能使用,在ODBC下,必须人工执行全部所需的设置,另外ODBC

也适用于Sun Solaris操作系统。

什么是JDBCJDBC和ODBC有什么联系和区别

【答】JDBC是基于java的,用于访问关系数据库的应用程序编程接口(API),提供在java应用程序中执行sql语句以访问和操作关系数据库的方法。

JDBC和ODBC一样都具有开放性,都具有管理各种数据库驱动程序的功能。ODBC

Java程序设计实例教程考试题

Java程序设计练习题 一、选择题 1、为使Java程序独立于平台,Java虚拟机把字节码与各个操作系统及硬件( A ) A)分开B)结合 C)联系D)融合 2、Java语言与C++语言相比,最突出的特点是( C ) A)面向对象B)高性能 C)跨平台D)有类库 3、下列Java源程序结构中前三种语句的次序,正确的是(D) A)import,package,public class B)import必为首,其他不限 C)public class,package,import D),import,public class 4、在JDK目录中,Java程序运行环境的根目录是( A ) A)bin B)demo C)lib D)jre 5、下列运算符中属于关系运算符的是(A ) A)== B).= C)+= D)-= 6、下列布尔变量定义中,正确并且规范的是( B ) A)BOOLEAN canceled=false; B)boolean canceled=false; C)boolean CANCELED=false; D)boolean canceled=FALSE; 7、下列关键字中可以表示常量的是( A ) A)final B)default C)private D)transient 8、下列运算符中,优先级最高的是( A ) A)++ B)+ C)* D)> 9、Java中的基本数据类型int在不同的操作系统平台的字长是( B ) A)不同的B)32位 C)64位D)16位

10、给一个short类型变量赋值的范围是( C ) A)-128 至 +127 B)-2147483648至 +2147483647 C)-32768至 +32767 D)-1000至 +1000 11、下列运算中属于跳转语句的是( D ) A)try B)catch C)finally D)break 12、switch语句中表达式(expression)的值不允许用的类型是( C ) A)byte B)int C)boolean D)char 13、下列语句中,可以作为无限循环语句的是( A ) A)for(;;) {} B)for(int i=0; i<10000;i++) {} C)while(false) {} D)do {} while(false) 14、下列语句中执行跳转功能的语句是( C ) A)for语句B)while语句 C)continue语句D)switch语句 15、下列表达式中,类型可以作为int型的是( C ) A)“abc”+”efg”B)“abc”+’efg’ C)‘a’+’b’D)3+”4” 17、数组中各个元素的数据类型是( A ) A)相同的B)不同的 C)部分相同的D)任意的 18、在Java语言中,被成为内存分配的运算符是( A ) A)new B)instance of C)[] D)() 19、接口中,除了抽象方法之外,还可以含有( B ) A)变量B)常量 C)成员方法D)构造方法 20、下列能表示字符串s1长度的是( A ) A)s1.length()B)s1.length C)s1.size D)s1.size() 21、StringBuffer类字符串对象的长度是( C ) A)固定B)必须小于16个字符 C)可变D)必须大于16个字符 22、构造方法名必须与______相同,它没有返回值,用户不能直接调用它,只能通过new调用。( A ) A)类名B)对象名 C)包名D)变量名 23、子类继承了父类的方法和状态,在子类中可以进行的操作是( D ) A)更换父类方法B)减少父类方法 C)减少父类变量D)添加方法 24、String、StingBuffer都是______类,都不能被继承。( C )

Java语言程序设计基础教程习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章 Java程序设计概述 练习思考题 1、 Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、 Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、 public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

java程序设计基础(含参考答案)

“Java程序设计基础”课程习题 一、填空 1.Java程序分两类___Applet___和application,Java Application 类型的程序,程序从 ___main方法___开始执行。 2.定义一个Java类时,通过关键字__extends____指明该类的父类。一个类可以有___1___ 个父类。 3.用public修饰的类称为_公有类或公用类__。用public修饰的类成员称为公有成员。被 说明为public的内容可以被__所有其他类___ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过__import____语句引入。 4.用___private___ 修饰的类成员称为私有成员。私有成员只能在__本类__ 中使用。 5.如果子类定义的成员变量与父类的成员变量同名,称为___方法覆盖___ ,要表明使用 子类的成员变量,可以在成员变量前加上关键字__super___ 。 6.____Object__ 类是Java类库中所有类的父类。 7.Java字符使用__16位的字符集,该字符集成为__Unicode____ 。 8.当子类中定义的方法与父类方法同名时,称子类方法___覆盖___ 父类方法,子类默认 使用自己的方法。使用父类的同名方法,必须用关键字__super__ 说明。 9.Java源程序文件名的后缀是___.java___,Java字节码文件名的后缀是_.class_____。 10.Java类名的第一个字母通常要求___大写___。 11.Java程序由____类__组成,每个程序有一个主类,Java程序文件名应与____主__类的 名称相同。 12.Java__Application_类型的程序需要main()方法,程序从__main____开始执行。 13.布尔型数据类型的关键字是_boolean__ ,占用位数是___1位___ ,有__true__ 和_false_ 两种值。整型数可以采用_十_ 、__八_ 和__十六_三种进制表示。 14.八进制整数以数字__0_开头。十六进制整数以_0x或0X_ 开头。 15.int整型数占用__32位内存。long整型数占用__64 位内存。 16.127L表示__长整型____ 常量。 17.根据占用内存长度将浮点常量分为_double_____ 和__float____ 两种。 18.单精度浮点常量占用__32_ 位内存,双精度浮点常量占用__64 位内存。 19.在Java语言中,字符串“ABC\tD\b\n”中包括__7个字符。 20.数学关系44&&x<9____ 。数学关系x>3且x<=10对应 的Java表达式是_x>3&&x<=10。数学关系x>3或x<-10对应的Java表达式是_x>3||x<-10_。 21.逻辑表达式true&&false&&true的结果是_false_ 。 22.__new__ 运算符的作用是根据对象的类型分配内存空间。当对象拥有内存空间时,会 自动调用类中的构造方法为对象_初始化_。 23.省略访问修饰符的类只能被同_一包_中的类使用,称之具有包访问特性。 24.用public修饰的类称为_公共类_。用public修饰的类成员称为公共成员。被说明为public 的内容可以被_所有类_ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过_import_语句引入。 25.用_private_ 修饰的类成员称为私有成员。私有成员只能在_本类使用。 26.在类中可以定义多个具有相同名称、但参数不同的方法,这种做法称为__方法重载_ 。 27.如果子类定义的成员变量与父类的成员变量同名,要表明使用子类的成员变量,可以在 成员变量前加上关键字__this__。

Java程序设计习题附答案(一)

Java程序设计题库 第一部分绪论 1、下列关于Java语言的特点,描述错误的是(C) A.Java是跨平台的编程语言B.Java支持分布式计算 C.Java是面向过程的编程语言D.Java支持多线程 2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B) A、安全性 B、多线性 C、跨平台 D、可移植 3、Java JDK中调试器的命令是(C)。 A、javac B、java C、jdb D、avah 4、运行jar文件中class文件需要在java命令后面加的参数为(A)。 A、-cp B-g C-d D-verbose 5、下面哪项在java中是不合法的标识符?(C) A、$user B、point C、You&me D、_endline 6、下面关于Java语言说法正确的是(ABCD)。 A、Java语言是面向对象的、解释执行的网络编程语言。 B、Java语言具有可移植性,是与平台无关的编程语言。 C、Java语言可对内存垃圾自动收集。 D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。 7、在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。( B) A、源, HTML B、源, 字节代码 C、字节代码, 源 D、HTML, 字节代码 8、Java的JVM是指(B)。 A、由Java操作的家用设备(通常是一个漂亮的小烤箱) B、Java字节代码的解释程序 C、Java源代码的编译器 D、运行Java 所需的硬件设备 9、在Java中,关于CLASSPA TH环境变量的说法不正确的是(A)。 A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B、编译器用它来搜索各自的类文件。 C、CLASSPATH是一个目录列表。 D、解释器用它来搜索各自的类文件。 10、一个可以独立运行的Java应用程序(D)。

Java程序设计实用教程_习题解答

习题 1 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件 2)使用Java编译器(javac.exe)编译源文件,得到字节码文件。 3)使用java解释器(java.exe)来解释执行字节码文件。 3.D:\JDK 1) 设置path 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量path。如果曾经设置过环境变量path,可单击该变量进行编辑操作,将需要的值d:\jdk\bin加入即可(注意:修改系统环境变量path后要重新打开DOS窗口编译)。或在DOS窗口输入命令行: set path=d:\jdk\bin(注意:用此方法修改环境变量每次打开DOS窗口都需要输入该命令行重新进行设置)。 2) 设置classpath 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量classpath。如果曾经设置过环境变量classpath,可单击该变量进行编辑操作,将需要的值d:\jdk\jre\lib\rt.jar;.;加入即可。或在DOS窗口输入命令行: set classpath= d:\jdk\jre\lib\rt.jar;.;。 4.(B)javac 5.Java源文件的扩展名是”.java”,Java字节码的扩展名是”.class” 6.Java应用程序主类的main申明(D)public static void main(String args[])

Java大学使实用教程复习资料

1.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗? 答:不正确。 2.java应用程序的主类必须含有怎样的方法? 答:含有main方法。 3.“java应用程序必须有一个类是public类”这句话正确吗? 答;不正确,只能有一个public类 4.。“java Applet程序的主类必须是public类”这句话正确吗? 答:正确,因为java Applet主类必须是Applet类的子类并且是public的类。 6.请叙述java源程序的命名规则。 答:与public的类同名 7.源文件生成的字节码文件在运行时都加载到内存中吗? 答:非也,动态随需要运行才加载。 8.下列哪些语句是错的? Int x=120; Byte b=120; B=x; 答:B=x;错应为b=(byte)x 9.下列哪些语句是错的? Float x=12.0; Float y=12; Double d=12; Y=d; 答:y=d;错,应y=(float)d 10.下列两个语句是等价的吗? Char x=97; Char x=…a?; 答:是等价的 11.下列system.out.printf语句输出结果是什么? Int a=97; Byte b1=(byte)128; Byte b2=(byte)(-129); System.out.printf(“%c,%d,%d”,a,b1,b2); 如果输出语句改为: System.out.printf(“%d,%d,%d”,a,b1,b2); 输出什么? 输出a ,-128,127 修改后输出97,-128,127 12假设有两个int类型数组: Int[] a=new int[10]; Int[] b=new int[8]; b=a; A[0]=100; B[0]的值一定是100吗? 答;一定,因为a数组与b数组引用相同。

java编程题全集题及答案

J a v a程序设计总复习题 1、编写一个Java程序,用if-else语句判断某年份是否为闰年。(分支) // Programme Name LeapYear.java public class LeapYear{ public static void main(String args[]){ int year=2010; if(args.length!=0) year=Integer.parseInt(args[0]); if((year%4==0 && year%100!=0)||(year%400==0)) 年是闰年。"); else 年不是闰年。"); } }//if-else语句 2、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。(循 环) // programme name ForTest.java public class ForTest { public static void main( String args[] ) { int i,j,mul,sum=0; for(i=1;i<=10;i++) { mul=1; for(j=1,j<=i;j++) { mul=mul*j; } sum=sum+mul; } “1!+2!+3!+……+10!= ”+sum); } } 3、依次输入10个学生成绩,判断学生(优秀、良好、中等、及格、不及格) 并计算人数(switch) 4、使用冒泡排序(数组) public class BubbleSort { public static void main(String[] args) {

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application得入口方法main()得检验: main()方法得参数名就是否可以改变? main()方法得参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法得参数名可以改变.(2)main()方法得参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? bytei =127; bytej = 128; longl1 = 999999; long l2= 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与longl2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 =3、5; float f2 = 3.5f; 参考答案:java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,floatf1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型得,但就是int类型无法转换为char类型得;(2)int 可以转换为double类型得,但就是double类型无法转换为int 类型得。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1)4+5 == 6*2 ?(2) (4=5)/6?? (3)9%2*7/3>17(4)(4+5)<=6/3 ? (5) 4+5%3!=7-2????(6)4+5/6〉=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法得. 7、下列()就是合法得Java标识符。 (1)Counter1 ??(2)$index, (3) name-7 ??(4)_byte

Java程序设计-习题参考答案

参考答案 第1章 3、计算机系统由哪两部分组成的?计算机硬件结构由哪几部分组成?它们各自有什么作用? 一台计算机由硬件和软件组成。一台典型的计算机由五大部分组成。这五大部分是:运算器,控制器,存储器,输入设备和输出设备。 运算器是执行算术运算和逻辑运算的部件。 控制器是向计算机其他部分发送命令的部件。 存储器是计算机用来存储数据、信息的部件。 输入设备就是外界向计算机输入信息设备。 输出设备恰好与输入设备的作用相反,它将处理过后的信息输出呈现给用户。 9、将以下十进制数转换为对应的二进制数 (1)32 (2)97 (3)256 (4)500 (1)100000 (2)1100001 (3)100000000 (4)111110100 第2章 1.Java语言有哪些主要特点。 平台独立性 安全性 多线程 网络化 面向对象 3.Java Application的开发步骤有哪些。 Java Application的开发步骤: (1)下载JDK软件并安装; (2)配置相应的环境变量(path和classpath); (3)编写Java源程序(文本编辑器或集成开发环境IDE); (4)编译Java源程序,得到字节码文件(javac *.java); (5)执行字节码文件(java 字节码文件名)。

4.什么是环境变量,设置环境变量的主要目的是什么。 环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。 第3章 1.Java语言对于合法标识符的规定是什么?指出以下哪些为合法标识符。 a a2 3a *a _a $a int a% 在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。另外,Java语言对标识符的有效字符个数不做限定。 合法的标识符: a a2 _a $a 5.数据类型强制转换的原则是什么?如何转换? 对于变窄转换,如long到short、double到float,或者不兼容转换:float到short、char 到short等,则需要进行强制转换。 float f = 11.5; short b ; b = (short)f; (强制转换) 第4章 5.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。 public class Test { public static void main(String[] args) { int a,b,c,x=100; while(x<1000){ a=x%10; b=(x%100-a)/10; c=(x-x%100)/100; if(a*a*a+b*b*b+c*c*c==x) System.out.println(x); x+=1;

Java大学实用教程1-4章知识点

Java大学实用教程 ======================================================================================= 第一章Java语言概述 1.3 Java的特点 掌握Java跨平台的原理 1.5 Java运行平台 了解JavaSE、JavaEE与JavaME的应用范围 系统变量Path的设置及其作用 将JDK工具命令的路径设置到Path变量中后,可以在任意位置运行那些命令。 系统变量ClassPath的设置及其作用 设置查找类的路径。 ClassPath中如果设置了某些路径,则必须向其中添加当前目录(.),否则JVM不会在当前目录查找类。 1.6 Java程序开发 Java程序必须有一个主类(含有main函数),作为程序执行的起点。 掌握源文件命名规则 编译Java源文件:javac Hello.java (源文件中的所有类都会被编译并生成.class文件) 运行Java程序:java Hello (执行的必须是一个主类名,不包括.class) Java Applet的运行原理:在html文件中通过标记嵌入applet代码,浏览器将相应的字节码文件下载到本地,利用其内置的Java虚拟机解释执行字节码文件,将结果显示到浏览器中。 ======================================================================================= 第二章基本数据类型和数组 2.1 标识符和关键字 标识符的命名规则:Java的标识符由字母(尽管可以使用世界上所有语言的字母,但建议只使用英文字母)、 下划线、$、数字组成,第一个字符不能是数字。Java的关键字不能作为标识符。 2.2 基本数据类型 整型常量默认为int类型,如果超出了int的表示范围,需要在后面添加l。 浮点型常量默认为double类型,如果为float常量,需要在后面添加f。 char类型:char类型本质上是一个16位的无符号整数,char c='a'与char c=97等价。有时候必须使用转义字符,例如:char c1='\'',c2='\\';(例2-1) 2.3 基本数据类型的转换 数据类型的精度顺序 char byte short int long float double 低精度类型到高精度类型可以自动转换,高精度类型向低精度类型必须强制转换。强制转换可能导致溢出或精度损失,如:byte b=(byte)130。 2.4 数据的输入与输出 System.out.print或println输出变量或者表达式的字符串表示 例如:'a'+1的输出为98,"a="+'a'+1的输出为a=a1,"a="+('a'+1)的输出为a=98 System.out.printf(控制字符串,表达式1,表达式2,...)(例2-3) 常用控制符:%s,%n,%c,%d,%f %md:输出整数,m列宽,右对齐; %-m.nf:输出浮点数,m列宽,小数点后保留n位(四舍五入),左对齐; Scanner类(例2-4) 创建读取对象:Scanner reader=new Scanner(System.in); 读取数据:调用reader.hasNextXxx()方法判断输入的是否是xxx类型的数据,再调用reader.nextXxx()方法读取数据。 2.5 数组 数组下标从0开始,下标越界运行会报错。

JavaWeb程序设计教程课后练习答案

第1章 Web应用开发简介 习题答案 1.Web在组成上包括______和______两部分。 答案: 服务器 客户端 2.谈谈对面向对象的认识。 答案: 面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。 3.介绍几种常用的框架技术。 答案: Java中常用的框架。 1.Struts Struts是Apache 基金会Jakarta 项目组的一个开源项目,是一个基于Sun J2EE平台的MVC框架,它将Servlet和JSP标签作为实现自身功能的一部分。 2.WebWork WebWork是由OpenSymphony组织开发的,是一个基于Web的MVC框架。它在运行时通过Interceptor(拦截器)自动应用,因此脱离了Action类。 3.Struts 2 Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与WebWork框架基础之上,继承了二者的优点,是目前非常流行的一个Web框架。 4.Spring Spring是一个以IoC和AOP为核心的轻量级容器框架。它提供了一系列的Java EE开发解决方案,包括表示层的Spring MVC、持久层的Spring JDBC以及业务层事务管理等众

多的企业级应用技术。 5.Hibernate Hibernate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。通过使用Hibernate框架,开发人员能够以面向对象的思维方式来操作数据库。 6.Ibatis 相对于Hibernate而言,Ibatis是一个“半自动化”的ORM实现框架,它主要致力于POJO与SQL之间的映射关系,是对“全自动化”ORM框架的一种有益补充。 7.EasyJWeb EasyJWeb是一个核心基于模板技术实现的MVC框架,主要致力于Java Web应用程序的快速开发。 4.IDE的用途是什么? 答案: IDE是一种用于辅助开发人员开发应用程序的应用软件,它一般包括代码编辑器、编译器、调试器和图形用户界面工具,有的还包括版本控制系统、性能分析器等更多工具,因此IDE也就具有了编写、编译、调试等多种功能。正是基于这些功能,使用IDE能够减少项目的开发周期,减轻程序员的工作量,提高应用程序的开发效率等。 5.Web应用服务器的用途是什么? Web应用服务器是为创建、部署、运行以及管理Web应用提供多种运行时服务(如事务、安全等等)的分布式系统,它是应用程序运行的一个基本环境。

java2实用教程试题

第1章Java 语言入门 1-1开发与运行Java程序需要经过哪些主要步骤和过程? 1-2怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗? 1-3Java程序是有什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的? 1-4在运行小应用程序的html文件中可以使用codebase属性制定小应用程序的字节码所驻留的目录。如果不使用codebase属性,小应用程序的字节码文件必须和运行它的html在同一目录中,编写一个小应用程序并将它的字节码存放在某个目录中,比如c:\Boy. 把运行该小应用程序的html文件(注意其中的codebase属性): < applet code=你的小程序的字节码wdith=20 height=30 codebase=c:\boy> 存放在另一个目录中(查阅有关编写网页方面的书籍,会有更 详细的关于怎样在一个网页中嵌入一个小应用程序的讲解)。 第2章标识符、关键字和数据类型 2-1上机运行下列程序,注意观察输出的结果。

public class E { public static void main ( string args [ ] ) { for (int i=20302; i<=20302; i++) { System.out. println (( char ) i ); } } 2-2System.out. println (“你好”);可输出字符串值,也可以使用System.out. println()输出变量或表达式的值,只需使用并置 符号:“+”将变量、表达式或一个常数值与一个字符串并置即 可,如System.out. println(“”+x);System.out. println(“:” +123+“大于”+122)等。上机调试下列程序,注意观察结果,特别注意System.out. print()和System.out. println()的区 别。 public class OutputData { public static void main ( string args [ ] ) { int x=234, y=432 ; System.out. println (“:” +x+“<”+2*x); System.out. print (“我输出结果后不回车“); System.out. println (“我输出结果后自动回车到下一行”); } }

《JAVA程序设计》(含答案)

《JA V A程序设计》练习题 一、单选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. java B. .class C. html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A)。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A)。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 5、关于选择结构下列哪个说法正确?( B ) A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.switch结构中每个case语句中必须用break语句 D.switch结构中必须有default语句 6、while循环和do…while循环的区别是:( D) A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.while循环是先循环后判断,所以循环体至少被执行一次 D.do…while循环是先循环后判断,所以循环体至少被执行一次 7、关于for循环和while循环的说法哪个正确?( B) A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空

《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以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。在出现的[环境变量]窗口中,在[系统变量]框中选择[Path]项,单击[编辑]按钮,在弹出的[编辑系统变量]窗口的[变量值]框后加上上面两条语句。 习题2参考答案 1.Java语言包含哪些数据类型? 答:包含基本数据类型和复合数据类型。基本类型包括整数类型、浮点数类型、布尔类型。复合类型包括类类型(Class Type)、接口类型(Interface Type)与数组类型(Array Type)。 2.Java有多少关键字? 答:abstract, continue, for, new, switch,boolean, default, goto*, null, synchronized,break, do, if, package, this,byte, double, implements, private, threadsafe,byvalve*, else, import, protected, throw,case, extends, instanceof, public, transient,catch, false, int, return, true,char, final,

java2实用教程(第3版例子代码)

Java 2实用教程(第三版) 清华大学出版社 (编著耿祥义张跃平) 例子源代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

第一章Java 语言入门例子1 public class Hello { public static void main (String args[ ]) { System.out.println("你好,很高兴学习Java"); } } 例子2 public class People { int height; String ear; void speak(String s) { System.out.println(s); } } class A { public static void main(String args[]) { People zhubajie; zhubajie=new People(); zhubajie.height=170; zhubajie.ear="两只大耳朵"; System.out.println("身高:"+zhubajie.height); System.out.println(zhubajie.ear); zhubajie.speak("师傅,咱们别去西天了,改去月宫吧"); } } 例子3 import java.applet.*; import java.awt.*; public class Boy extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.drawString("我一边喝着咖啡,一边学Java呢",5,30); g.setColor(Color.blue);

非常经典的JAVA编程题全集(50题及答案)

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少 //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } } 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3; for(int m=101; m<1000; m++) {

java语言程序设计作业答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系? 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象! 3)两者的关系:对象是类的具体实例.。 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种?具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种?他们对类成员分别有哪些访问限制的作用? 答: 类成员的访问控制符有public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). P rivate(保护的):类中限定为private的成员只能被这个类本身访问,在类外不可见。proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点? 答: 构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有); (3)构造方法通常被声明为公有的(public);

相关主题
文本预览
相关文档 最新文档