《Java语言程序设计基础教程》
13
A. package B. include C. import D. add 解答:C
11、已知A类被打包在packageA , B类被打包在packageB ,且B类被声明为public ,且有一个成员变量x被声明为protected控制方式 。C类也位于packageA包,且继承了B类 。则以下说法正确的是:( )
A、A类的实例不能访问到B类的实例
B、A类的实例能够访问到B类一个实例的x成员 C、C类的实例可以访问到B类一个实例的x成员 D、C类的实例不能访问到B类的实例 解答:C(太难)
13、在Java中,关于final关键字的说法正确的是( )
A、如果修饰变量,则一旦赋了值,就等同一个常量。 B、如果修饰类,则该类只能被一个子类继承。 C、如果修饰方法,则该方法不能在子类中被覆盖。 D、如果修饰方法,则该方法所在的类不能被继承。 解答:A,C
14、关于构造方法以下说法错误的是 ( D )。
(A)构造方法名必须与类名一致 (B)构造方法可以重载
(C)构造方法是通过new来调用 (D)每个类都必须编写构造方法代码15、关于类的定义以下说法错误( B )。
(A)类定义使用class关键字 (B)每个类中必须有一个main方法 (C)一个包可以包含多个类 (D)java中所有类都是Object类的子类 16、在创建对象时必须(C)
A) 先声明对象,然后才能使用对象
B) 先声明对象,为对象分配内存空间,然后才能使用对象
C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对
17、在调用方法时,若要使方法改变实参的值,可以(B)
A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 18、关于以下程序代码的说明正确的是( D ) class HasStatic{ private static int x=100; public static void main(String args[ ]){ HasStatic hs1=new HasStatic( ); hs1.x++; HasStatic hs2=new HasStatic( );
13
14
《Java语言程序设计基础教程》
hs2.x++; hs1=new HasStatic( ); hs1.x++; HasStatic.x- -; System.out.println(“x=”+x); } }
A、 5行不能通过编译,因为引用了私有静态变量 B、 10行不能通过编译,因为x是私有静态变量 C、 程序通过编译,输出结果为:x=103 D、 程序通过编译,输出结果为:x=102
19、以下关于构造函数的描述错误的是( A )。 A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。
20、Java中,在如下所示的Test类中,共有(C )个构造方法。 public class Test{ private int x;
public Test(){ x=35; }
public void Test(double f){ This.x=(int)f; } public Test(String s){} }
A、 0 B、 1 C、 2 D、 3
21、在Java中,关于构造方法,下列说法错误的是( C ) A、 构造方法的名称必须与类名相同 B、 构造方法可以带参数 C、 构造方法不可以重载
D、 构造方法绝对不能有返回值
22、在Java语言中,下列关于类的继承的描述,正确的是(B )。 A、 一个类可以继承多个父类 B、 一个类可以具有多个子类 C、 子类可以使用父类的所有方法 D、 子类一定比父类有更多的成员方法
14
《Java语言程序设计基础教程》
15
23、分析选项中关于Java中this关键字的说法正确的是( A ) A、 this关键字是在对象内部指代自身的引用 B、 this关键字可以在类中的任何位置使用
C、 this关键字和类关联,而不是和特定的对象关联 D、 同一个类的不同对象共用一个this
24、在Java接口中,下列选项中有效的方法声明是( A )。 A、 public void aMethod();
B、 public final void aMethod(); C、 protected void aMethod(); D、 private void aMethod();
25、下列选项中关于Java中super关键字的说法正确的是(A )。 A、 super关键字是在子类对象内部指代其父类对象的引用
B、 super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C、 子类通过super关键字只能调用父类的方法,而不能调用父类的属性 D、 子类通过super关键字只能调用父类的属性,而不能调用父类的方法
3.2填空题
1、在Java程序中,通过类的定义只能实现____单重继承____,但通过接口的定义可以实现多____多重继承____。
2、_抽象(abstract)___方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。__final____方法是不能被当前类的子类重新定义的方法。
3、面向对象程序设计的三个特征是_____封装、____多态、____继承
4、Java是面向对象语言,类是客观事物的_抽象____,而对象是类的_实例____。
5、如果在子类中想使用被子类隐藏的父类成员变量或方法,就可以使用关键字__ super_____。
6、Java中有一种叫作___构造方法__的特殊方法用来对类的对象成员进行初始化。
7、JAVA语言中提供了两种类型的字符串类来处理字符串,它们是___String_和___StringBuffer类
15
16
《Java语言程序设计基础教程》
8、Java语言中,所有 的类都是___Object的子类,Java的窗口通常是___JFrame__的子类,___抽象_类只能定义但不能被实例化,_ 最终_类不能被继承
9、一般Java程序的类体由两部分组成:一部分是_属性_,另一部分是_方法_
10、分别用__class_关键字来定义类,用_new__关键字来分配实例存储空间。
11、Java中类成员的限定词有以下几种:__ private_ _, public __ _, protected __ _, _缺省_ _。其中,_public __的限定的范围最大。类中限定为_ private __的成员,只能被这个类本身内部访问。
12、Java类中,如果类的定义者没有显式的定义任何构造方法,系统将自动提供一个___无参默认_构造方法。
13、在子类中定义与父类的相同的方法,若在多个子类中定义相同的方法,则可以调用不同子类中的相同方法而实现不同的功能,这实现了程序运行时的______ 多态 。
3.3简答题
1. 简单阐述方法的重载和方法的重写之间的区别 解答:
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同
2、 简述实例变量和类变量的区别。
解答:类变量也叫静态变量,也就是在变量前加了static 的变量;实例变量也叫对象变量,即没加static 的变量;
区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
2、简述实例方法和类方法的区别
解答:实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。
3、面向对象的三个基本特征是什么,分别简单介绍每个特征。
16