资源描述
习题
一、选择题(答案可能不止一个)
1.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )
A.static void method( ) B.public void method( )
C.final void method( ) D.abstract void method( )
2.对于构造方法,下列叙述正确的是( )
A.构造方法是类的一种特殊方法,它的方法名必须与类名相同
B.构造方法的返回类型只能是void型
C.构造方法的主要作用是完成对类的对象的初始化工作
D.一般在创建新对象时,系统会自动调用构造方法
3.若需要定义一个类变量或类方法,应使用哪种修饰符?( )
A.static B.package C.private D.public
4.若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于( )
A.本地方法 B.最终方法 C.静态方法 D.抽象方法
5.不使用static修饰符限定的方法称为实例方法。下列关于实例方法的说法中,正确的是( )
A.实例方法可以直接调用父类的实例方法
B.实例方法可以直接调用父类的类方法
C.实例方法可以直接调用其他类的实例方法
D.实例方法不可以直接调用本类的类方法
6.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
7.设有下面的一个类定义:
class AA {
static void Show( ){
System.out.println(“我喜欢Java!”);
}
}
class BB {
void Show( ){
System.out.println(“我喜欢C++!”);
}
}
若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的?( )
A.a.Show( ) B.AA.Show( ) C.AA.Show( ) D.a.Show( )
b.Show( ) BB.Show( ) b.Show( ) BB.Show( )
8.关于下列代码,哪那个语句的描述是正确的?( )
public class Person{
static int arr[] = new int[10];
public static void main(String a[]){
System.out.println(arr[1]);
}
}
A.编译时将产生错误 B.编译时正确,运行时将产生错误
C.输出零 D.输出空
9. 下列方法定义中,正确的是( )
A. int x( ){ char ch='a'; return (int)ch; } B.void x( ){ ...return true; }
C. int x( ){ ...return true; } D.int x( int a, b){ return a+b; }
10.在某个类A中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是( )
A.void getSort(float x) B.int getSort(int y)
C.double getSort(int x,int y) D.void get(int x,int y)
11. 有一个类A,以下为其构造方法的声明,正确的是( )
A. void A(int x){...} B. A(int x){...}
C. a(int x){...} D. void a(int x){...}
12. 符合对象和类关系的是( )
A.人和老虎 B.书和汽车 C.楼和建筑物 D.汽车和交通工具
二、填空题
1.定义一个类包括类的声明和_______两个部分。
2. Java中类成员的访问修饰符有以下几种:private, public, _ __ _ ___, _______ _;类的访问修饰符只能使用缺省和_______ _。
3.类的类型修饰符包含了缺省、 及 三种,分别对应具体类、抽象类和最终类三种类型。
4.this除了可以用作对当前对象的引用外,还可以使用this调用 构造方法以及访问 ___________的成员变量。
5.如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法 __________了父类的同名方法。
6.创建一个名为MyPackage 的包的语句是 ,该语句应该放在程序的位置为 。
三、思考题
1.面向对象编程语言的基本特征是什么?
2.什么是对象?什么是类?对象与类的关系是什么?
3.类变量与实例变量的区别?
4.类方法与实例方法的区别?
5.什么是方法的重载?
6.构造方法有什么作用?
7.Java中引入包的优点是什么?
8.如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包?
四、编程题
1.根据下面的要求实现圆类Circle:
Circle类的成员变量:radius 半径
Circle类的成员方法:
(1) Circle() 构造方法,将半径置为0
(2) Circle(double r) 构造方法,创建Circle对象时将半径初始化为r
(3) double getRadius() 获得圆的半径值
(4) void setRadius(double r) 设置圆的半径
(5) double getPerimeter() 获得圆的周长
(6) double gerArea() 获得圆的面积
接着再定义一个类CircleTest,用来调用Circle类,具体如下:
在CircleTest类的main()方法中创建一个半径为0的对象c1,再调用它的setRadius()修改其半径值为50,然后输出c1的周长和面积。
2.先定义一个教师类Teacher,它封装了:
三个成员变量:
strNo //表示工号
strName //表示姓名
intWorkAge //表示工龄
四个成员方法:
Teacher(String no, String name, int workAge) //构造方法
getTeacherNo() //获取教师工号
getTeacherName() //获取教师姓名
getTeacherWorkAge() //获取教师工龄
接着再定义一个类TeacherTest,用来调用Teacher类,具体如下:
在Teacher类的main()方法中创建一个工号为“0234”、姓名为“张三”、工龄为35年的对象t1,然后输出t1的工号、姓名和工龄。
3.设计学生类student,属性包括:sno、sname、Chinese(语文成绩)、Math(数学成绩)和Phsic(物理成绩),,然后创建一个包含四个元素的对象数组stu,stu使用表1中的数据进行初始化,要求输出三门成绩总和为最高的学生学号和姓名。
表1 类属性及属性值
4.请按要求设计一个课程类Course,它封装了:
三个成员变量:
courseID //课程代号
courseName //课程名称
credit //课程学分
四个重载的构造器:
Course() //默认的构造器
Course(String courseID) //单参数的构造器
Course(String courseID,String courseName) //两个参数的构造器
Course(String courseID,String courseName, int credit) //三个参数的构造器
要求:Course(String courseID,String courseName)构造器要调用Course(String courseID,String courseName, int credit)构造器。
展开阅读全文