(一)选择题
1) 若在某一个类定义中定义有如下的方法: final void workDial( )该方法属于
A.本地方法
B.最终方法
C.静态方法
D.抽象方法
2) 下面哪个方法与题目中的不是重载方法public int max(int x,int y)
A.public double max(double x,double y)
B.public int max(int n,int k)
C.public int max(int x,int y, int z)
D.public double max(double n,double k)
3) 为了区分类中重载的同名的不同方法,要求
A.参数列表不同
B.调用时用类名或对象名做前缀
C.参数名不同
D.返回值类型不同
4) 某个类中存在一个方法:void getSort(int x),以下能作为该方法的重载的声明的是?
A.public getSort(float x)
B.double getSort(int x,int y)
C.int getSort(int y)
D.void get(int x,int y)
5) A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
A a0=new A();
A a1 =new B();
A a2=new C();
问以下哪个说法是正确的?
}
A.只有第1行能通过编译
B.第1、2行能通过编译,但第3行编译出错
C.第1、2、3行能通过编译,但第2、3行运行时出错
D.第1行、第2行和第3行的声明都是正确的
6) 设有下面两个类的定义。
class Person {
longid; // 身份证号
Stringname; // 姓名
}
class Student extends Person {
intscore; // 入学总分 }
intgetScore() {
returnscore;
}
}
则类Person和类Student的关系是?
}
A.包含关系
B.继承关系
C.关联关系
D.上述类定义有语法错误
7) 下列叙述中,正确的是?
A.子类继承父类的所有属性和方法
B.子类可以继承父类的私有的属性和方法
C.子类可以继承父类的公有的属性和方法
D.创建子类对象时,父类的构造方法都要被执行
8) 现有两个类A、B,以下描述中表示B继承自A的是?
A.class A extends B
B.class B implements A
C.class A implements B
D.class B extends A
9) 下列叙述中错误的是?
A.一个子类可有多个父类
B.父类派生出子类
C.子类继承父类
D.子类只能有一个父类
10) 关于继承下面说法正确的是
A.子类能够继承父类私有的属性;
B.子类可以重写父类的final方法;
C.子类能够继承不同包父类的protected属性;
D.子类能够继承不同包父类的缺省属性;
11) 有名字为A的包和名为B的类,下面的语句正确的是
A.package A.B; B.package B; C.importA.* ; D.import B;
12) 声明一个名字为P的包,下面的语句正确的是
A.package Pkg; B.Package P; C.package P; D.package "p";
13) 导入包A中的类AA应该使用下面哪条语句?
A.import A.AA ; B.importAA.A;C.package A;D.package AA;
14) 下列针对int类型的私有属性age的访问器方法格式正确的是?
A.void getAge(int age)
B.int getAge(int age)
C.void setAge(int age)
D.int setAge()
15) 下列关于访问器方法说法正确的是?
A.get方法可以读取属性的值
B.set方法用来读取属性的值
C.必须为每个private属性提供访问器方法
D.public属性不能有访问器方法
16) 表示数据或方法可以只能被定义它的类访问的是
A.public
B.默认的
C.private
D.protected
17) 表示数据或方法只能被其它包中的子类访问的是
A.public
B.默认的
C.private
D.protected
18) 对于子类的构造函数说明,下列叙述中不正确的是 ?
A.子类无条件地继承父类的无参构造函数
B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句
C.在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数
D.子类不但可以自动执行父类的无参构造函数,也可以自动执行父类的有参构造函数
19) 当你编译运行下列程序代码,会得到什么结果?
private class Base{
Base(){
int i = 100;
System.out.println(i);
}
}
publicclass Pri extends Base{
staticint i = 200;
publicstatic void main(String argv[]){
Pri p = new Pri();
System.out.println(i);
}
}
A.这段代码不能通过编译
B.输出200
C.输出100和200
D.输出100
(二)简答题
1) 简述修饰类的可见性修饰符有哪些及其作用?
2) 简述修饰类的成员的可见性修饰符有哪些及其作用?
3) 导入包时可导入其他包中哪些类?如何导入包p中的全部可以使用的类,请写出语句?
4) 包的作用是什么?如何声明一个包?
5) 写出set和get方法定义的格式。
6) 简述this和super的区别?
7) super的作用有哪些?
8) final修饰符都能用来修饰程序中哪些成员?
9) 请写出下列输出结果。
class FatherClass {
public FatherClass() {
System.out.println("FatherClass Create"); }
}
class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("ChildClass Create"); }
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass(); }
FatherClass Create
FatherClass Create
ChildClass Create
10) 下面是一个类的定义,填写程序空白处。
class B {
privateint x;
privatechar y;
publicB( int x, char y , char j) {
x =i;
y = j; }
public int getX()
{ returnx;}
public void setX(int x)
{ this.x=x }
public char getY()
{ returny;}
public void setY( char y )
{ this.y=y;}
}
11) 定义类A和类B如下.:
class A{
int m=1;
double n=2.0;
void print( ) {
System.out.println("Class A: m="+m +",n="+n); }
}
class B extends A{
float m=3.0f;
String n="Good .";
void print() {
super.print();
System.out.println("Class B: m="+m +",n="+n); }
}
问题:(1) 若在应用程序的main方法中有以下语句:
A a=new A();
a.print();
则输出的结果如何?
Class A: m=1,n=2.0
(2) 若在应用程序的main方法中定义类B的对象b:
B b=new B();
b.print();
则输出的结果如何?
Class A: m=1,n=2.0
Class B: m=3.0,n=Good
12) 请写出下列输出结果。
class Parent {
voidprintMe() {
System.out.println("parent");
}
}
class Child extends Parent {
voidprintMe() {
System.out.println("child");
}
voidprintAll() {
super.printMe();
this.printMe();
printMe();
}
}
class Class1 {
publicstatic void main(String[] args) {
ChildmyC = new Child();
myC.printAll();
}
}
parent
child
child
(三)编程题
1) 定义一个学生类,包括属性:学号(ID),姓名(name),成绩(score);构造方法(带三个参数);每个属性的访问器方法。
2) 创建类A1,实现构造方法中输出Thisis A;创建A1的子类B1,实现构造方法中输出This is B;创建B1的子类C1,实现构造方法中输出This is C。
3) 定义一个人类(Person),它包含属性:姓名(name),性别(sex);带两个参数的构造方法;属性的访问器方法。定义上面人类的子类学生类(Student),包括属性:学号(ID),带参数的构造方法;属性的访问器方法。