《Java程序设计教程》习题及参考答案2
(2010-12-26 22:28:47)
标签:
杂谈 |
分类: IT |
第3章
Java语言面向对象基础
习 题 三
一、填空题
1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个个具体的对象。
2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。
3.模型应具有(抽象性)、(可理解性)、(精确性)、(确定性)和廉价性等基本特性。
4.UML定义了(用例图)、(静态图)、(交互图)、行为图和实现图五类模型图。
5.在UML类图中分别用( + )、( # )、( ~ )和( - )表示属性与方法的公有、保护、默认和私有访问控制权限。
6.在UML中,类之间主要有(关联)、(依赖)、(聚集)、(泛化)和实现五种关系。
7.构造方法的方法名与(类名)相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个(默认构造)方法。
8.在方法体内定义的变量是(局部变量),其前面不能加(public),且必须(初始化)。
9.数组元素作实参时对形参变量的数据传递是(单向值传递),数组名作实参时对形参变量的数据传递是(双向引用传递)。
10.对象作方法形参时,方法实参也用对象,实现(引用)调用。
11.( new)是一个特殊的方法,用于创建一个类的实例。
12.对象拷贝有(对象引用复制)、(浅复制)和(深复制)三种。
13.(类)方法不能直接访问其所属类的(实例)变量和(实例)方法,只可直接访问其所属类的(类)变量和(类)方法。
14.(类)变量在内存中只有一个拷贝,被该类的所有对象共享;每当创建一个实例,就会为(实例)变量分配一次内存,(实例)变量可以在内存中有多个拷贝,互不影响。
15.Java使用固定于首行的(package)语句来创建包。
16.在运行时,由java解释器自动引入,而不用import语句引入的包是(java.lang)。
17.发布Java应用程序或类库时,通常可以使用JDK中自带的(JAR)命令打包。
二、简答题
1.名词解释:OO、OOSE、OOA、OOD、OOP;抽象、对象、类、实例、方法、属性、消息、接口、封装、继承、多态性;模型、UML、类图、对象图、用例图、顺序图、协作图、状态图、活动图、包图、构件/组件图、部署图。
2.简述面向对象的基本思想、主要特征和基本要素。
3.为什么要对类进行封装?封装的原则是什么?
4.类的封装性、继承性和多态性各自的内涵是什么?
5.简述依赖、关联和聚集的区别。
6.什么是对象?什么是类?二者有何关系?
7.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?
8.Java中成员变量定义的一般格式是什么?成员变量有哪些修饰符?
9.Java中成员方法定义的一般格式是什么?成员方法有哪些修饰符?
10.简述构造方法的特点与作用。
11.Java中创建对象的一般格式是什么?如何初始化对象?如何给对象赋值?
12.什么是类变量(静态变量)?什么是实例变量?它们的存储特性、访问方法、主要区别是什么?
13.什么是类方法(静态方法)?什么是实例方法?它们的存储特性、访问方法、主要区别是什么?
14.什么是包?如何创建包?如何引用包?
15.Import语句和package语句的功能分别是什么?
16.举例说明JAR包的创建、加载与运行方法。
三、选择题
1.下面关于封装性的描述中,错误的是( D )。
A.封装体包含属性和行为
B.被封装的某些信息在外不可见
C.封装提高了可重用性
D.封装体中的属性和行为的访问权限相同
2.下面关于类方法的描述,错误的是( B )。
A.说明类方法使用关键字static
B.类方法和实例方法一样均占用对象的内存空间
C.类方法能用实例和类名调用
D.类方法只能处理类变量或调用类方法
3.下面关于包的描述中,错误的是( A )。
A.包是若干对象的集合
B.使用package语句创建包
C.使用import语句引入包
D.包分为有名包和无名包两种
◆◆◆ 4.下述哪些说法是正确的?( BCD )
A.用static关键字声明实例变量
B.实例变量是类的成员变量
C.局部变量在方法执行时创建
D.局部变量在使用之前必须初始化
5.下面哪些代码段是正确的Java源程序?( BCD )
A.import java.io.*;
B.import java.io.*;
package testpackage;
class Person{}
public class Test{}
public class Test{}
C.import java.io.*;
D.package testpackage;
import java.awt.*;
public class Test{}
public class Test{}
四、判断题
1.类是一种类型,也是对象的模板。( √ )
2.类中说明的方法可以定义在类体外。( × )
3.实例方法中不能引用类变量。( × )
4.创建对象时系统将调用适当的构造方法给对象初始化。( √ )
5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值。( √ )
6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。( √ )
7.对象可作方法参数,对象数组不能作方法参数。( × )
8.class是定义类的惟一关键字。( √ )
9.Java语言会自动回收内存中的垃圾。( √ )
五、分析题
◆◆◆ 分析下面的程序,写出运行结果。
import java.awt.*;
import java.applet.*;
class MemberVar {
static int
sn = 30;
final int
fn;
final int fk
= 40;
MemberVar()
{
fn = ++sn;
}
}
public class Exercises5_1 extends Applet {
public void
paint(Graphics g) {
MemberVar obj1 = new
MemberVar();
MemberVar obj2 = new
MemberVar();
g.drawString("obj1.fn=" +
obj1.fn, 20, 30);
g.drawString("obj1.fk=" +
obj1.fk, 20, 50);
g.drawString("obj2.fn=" +
obj2.fn, 20, 70);
g.drawString("obj2.fk=" +
obj2.fk, 20, 90);
}
}
运行结果是:(
)
obj1.fn=33
obj1.fk=40
obj2.fn=34
obj2.fk=40
六、改错题
1.下面的程序中有若干个语法错误,找出后请改正。
public class MyMainClass{
public static void main(
) {
TheOtherClass obj = new TheOtherClass("John
Smith","Male","UK");
System.out.println(obj.name+' '+obj.gender+'
'+obj.nationality);
}
System.out.println("The end of the program! ")
}
public class TheOtherClass{
private String name,gender,nationality;
public TheOtherClass(String name,String
gender,String nationality)
{
this.name=name;
习
一、填空题
1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个个具体的对象。
2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。
3.模型应具有(抽象性)、(可理解性)、(精确性)、(确定性)和廉价性等基本特性。
4.UML定义了(用例图)、(静态图)、(交互图)、行为图和实现图五类模型图。
5.在UML类图中分别用( + )、( # )、( ~ )和( - )表示属性与方法的公有、保护、默认和私有访问控制权限。
6.在UML中,类之间主要有(关联)、(依赖)、(聚集)、(泛化)和实现五种关系。
7.构造方法的方法名与(类名)相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个(默认构造)方法。
8.在方法体内定义的变量是(局部变量),其前面不能加(public),且必须(初始化)。
9.数组元素作实参时对形参变量的数据传递是(单向值传递),数组名作实参时对形参变量的数据传递是(双向引用传递)。
10.对象作方法形参时,方法实参也用对象,实现(引用)调用。
11.( new)是一个特殊的方法,用于创建一个类的实例。
12.对象拷贝有(对象引用复制)、(浅复制)和(深复制)三种。
13.(类)方法不能直接访问其所属类的(实例)变量和(实例)方法,只可直接访问其所属类的(类)变量和(类)方法。
14.(类)变量在内存中只有一个拷贝,被该类的所有对象共享;每当创建一个实例,就会为(实例)变量分配一次内存,(实例)变量可以在内存中有多个拷贝,互不影响。
15.Java使用固定于首行的(package)语句来创建包。
16.在运行时,由java解释器自动引入,而不用import语句引入的包是(java.lang)。
17.发布Java应用程序或类库时,通常可以使用JDK中自带的(JAR)命令打包。
二、简答题
1.名词解释:OO、OOSE、OOA、OOD、OOP;抽象、对象、类、实例、方法、属性、消息、接口、封装、继承、多态性;模型、UML、类图、对象图、用例图、顺序图、协作图、状态图、活动图、包图、构件/组件图、部署图。
2.简述面向对象的基本思想、主要特征和基本要素。
3.为什么要对类进行封装?封装的原则是什么?
4.类的封装性、继承性和多态性各自的内涵是什么?
5.简述依赖、关联和聚集的区别。
6.什么是对象?什么是类?二者有何关系?
7.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?
8.Java中成员变量定义的一般格式是什么?成员变量有哪些修饰符?
9.Java中成员方法定义的一般格式是什么?成员方法有哪些修饰符?
10.简述构造方法的特点与作用。
11.Java中创建对象的一般格式是什么?如何初始化对象?如何给对象赋值?
12.什么是类变量(静态变量)?什么是实例变量?它们的存储特性、访问方法、主要区别是什么?
13.什么是类方法(静态方法)?什么是实例方法?它们的存储特性、访问方法、主要区别是什么?
14.什么是包?如何创建包?如何引用包?
15.Import语句和package语句的功能分别是什么?
16.举例说明JAR包的创建、加载与运行方法。
三、选择题
1.下面关于封装性的描述中,错误的是( D )。
A.封装体包含属性和行为
C.封装提高了可重用性
2.下面关于类方法的描述,错误的是( B )。
A.说明类方法使用关键字static
C.类方法能用实例和类名调用
3.下面关于包的描述中,错误的是( A )。
A.包是若干对象的集合
C.使用import语句引入包
◆◆◆ 4.下述哪些说法是正确的?( BCD )
A.用static关键字声明实例变量
C.局部变量在方法执行时创建
5.下面哪些代码段是正确的Java源程序?( BCD )
A.import java.io.*;
package testpackage;
public class Test{}
C.import java.io.*;
import java.awt.*;
public class Test{}
四、判断题
1.类是一种类型,也是对象的模板。( √ )
2.类中说明的方法可以定义在类体外。( × )
3.实例方法中不能引用类变量。( × )
4.创建对象时系统将调用适当的构造方法给对象初始化。( √ )
5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值。( √ )
6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。( √ )
7.对象可作方法参数,对象数组不能作方法参数。( × )
8.class是定义类的惟一关键字。( √ )
9.Java语言会自动回收内存中的垃圾。( √ )
五、分析题
◆◆◆ 分析下面的程序,写出运行结果。
import java.awt.*;
import java.applet.*;
class MemberVar {
}
public class Exercises5_1 extends Applet {
}
运行结果是:(
obj1.fn=33
obj1.fk=40
obj2.fn=34
obj2.fk=40
六、改错题
1.下面的程序中有若干个语法错误,找出后请改正。
public class MyMainClass{
public static void main(
}
System.out.println("The end of the program! ")
}
public class TheOtherClass{

加载中…