R2-1
对于类与对象的关系,以下说法错误的是( )。
A.
类是对象的类型
B.
类是同类对象的抽象
C.
对象由类来创建
D.
对象是创建类的模板
R2-2
将以下哪种方法插入行3是不合法的。
1.public class Test1{
2. public float aMethod(float a,float b){ }
3.
4.}
A.
private float aMethod(int a,int b,int c){ }
B.
public float aMethod(float c,float d){ }
C.
public int aMethod(int a, int b){ }
D.
public float aMethod(float a, float b,float c){ }
R2-3
要产生[20,999]之间的随机整数使用哪个表达式? ( )
A.
20+(int)(Math.random()*980)
B.
(int)(20+Math.random()*97)
C.
(int)Math.random()*999
D.
20+(int)Math.random()*980
R2-4
关于以下程序代码的说明正确的是( ) 。
class HasStatic{ private static int x=100; public static void main(String[ ] args){ HasStatic hs1=new HasStatic( ); hs1.x++; HasStatic hs2=new HasStatic( ); hs2.x++; hs1=new HasStatic( ); hs1.x++; HasStatic.x--; System.out.println(“x=”+x); } }
A.
程序通过编译,输出结果为:x=103
B.
5行不能通过编译,因为引用了私有静态变量
C.
程序通过编译,输出结果为:x=102
D.
10行不能通过编译,因为x是私有静态变量
R2-5
若在某一个类定义中定义有如下的方法:abstract void performDial( );该方法属于( )。
A.
接口方法
B.
空方法
C.
抽象方法
D.
最终方法
R2-6
定义字符串:String s1="hello";对下面程序描述正确的是()。
if(s1=="hello"){ System.out.println("s1 = "hello""); }else{ System.out.println("s1 !=hello"); }
A.
输出 s1 !=hello
B.
产生编译错误
C.
输出 s1="hello"
D.
编译正确,运行错误
R2-7
在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。
A.
private protected
B.
private
C.
protected
D.
public
R2-8
在Java中,能实现多重继承效果的方式是( )。
A.
适配器
B.
内部类
C.
继承
D
接口
R2-9
声明成员变量时,如果不使用任何访问控制符(public, protected, private),则以下哪种类型的类不能对该成员进行直接访问 ( ) .
A.
同一类
B.
同一包中的子类
C.
同一包中的非子类
D.
不同包中的子类
R2-10
关于AWT和Swing的以下说法正确的是( )。
A.
AWT在不同操作系统中显示相同
B.
Swing是AWT的子类
C.
Swing在不同操作系统中的显示风格相同
D.
AWT和Swing都支持事件模型GridLayout
R2-11
若A1、A2为已定义的接口 ,以下接口定义中没有语法错误的是( ) 。
A.
abstract interface B extends A1,A2 { abstract void print(){ };}
B.
abstract interface B { void print() }
C.
interface B { void print();}
D.
interface B { void print() { } }
R2-12
选项中哪一行代码可以替换题目中//add code here而不产生编译错误?( )
public abstract class MyClass {
public int constInt = 5;
//add code here
public void method() { }
}
A.
public abstract void anotherMethod() {}
B.
value = value + 5;
C.
public int method();
D.
public abstract void method(int a);
R2-13
Java中( ) 。
A.
一个子类可以有多个父类,一个父类也可以有多个子类
B.
一个子类可以有一个父类,但一个父类可以有多个子类
C.
上述说法都不对
D.
一个子类可以有多个父类,但一个父类只可以有一个子类
R2-14
下列String类的( )方法返回指定字符串的一部分。
A.
extractstring()
B.
substring()
C.
Substring()
D.
Middlestring()
R2-15
关于被私有访问控制符private修饰的成员变量,以下说法正确的是( )
A.
只能被同一个包中的类访问
B.
可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
C.
只能被该类自身所访问和修改
D.
可以被两种类访问和引用:该类本身、该类的所有子类
R2-16
下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child("mike")的时候都有哪些构造方法被顺序调用?请选择输出结果 ( )
class People {
String name;
public People() {
System.out.print(1);
}
public People(String name) {
System.out.print(2);
this.name = name;
}
}
class Child extends People {
People father;
public Child(String name) {
System.out.print(3);
this.name = name;
father = new People(name + ":F");
}
public Child(){
System.out.print(4);
}
}
A.
432
B.
32
C.
312
D.
132
R2-17
以下关于Java的局部内部类的说法错误的是( )
A.
局部内部类可以访问外部类的所有成员
B.
局部内部类只能在当前类中使用
C.
在局部内部类中定义的内部类不能被private修饰符修饰
D.
局部内部类不能包含静态成员
R2-18
在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( )。
A.
隐藏
B.
覆盖
C.
重载
D.
Java不支持此特性
R2-19
下列说法正确的有() 。
A.
constructor必须与class同名,但方法不能与class同名
B.
class中的constructor不可省略
C.
一个class只能定义一个constructor
D.
constructor在一个对象被new时执行
R2-20
运行如下程序输出为:( )。
public class Test { public static void main(String[] args) { new Circle9(); } } public abstract class GeometricObject { protected GeometricObject() { System.out.print("A"); } protected GeometricObject(String color, boolean filled) { System.out.print("B"); } } public class Circle9 extends GeometricObject { /** No-arg constructor */ public Circle9() { this(1.0); System.out.print("C"); } /** Construct circle with a specified radius */ public Circle9(double radius) { this(radius, "white", false); System.out.print("D"); } /** Construct a circle with specified radius, filled, and color */ public Circle9(double radius, String color, boolean filled) { super(color, filled); System.out.print("E"); } }
A.
ABCD
B.
AEDC
C.
BEDC
D.
BACD
R2-21
欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( )
A.
List myList=new ArrayList();
B.
ArrayList myList=new Object();
C.
List myList=new List();
D.
ArrayList myList=new List();
R2-22
以下代码的输出结果为( )。
public class Pass{ static int j = 20; public void amethod(int x){ x = x*2; j = j*2; } public static void main(String args[]){ int i = 10; Pass p = new Pass(); p.amethod(i); System.out.println(i+" and "+j); } }
A.
10 and 20
B.
20 and 40
C.
10 and 40
D.
错误:方法参数与变量不匹配
R2-23
下面哪个选项中的代码没有定义内部类,或者错误的定义了内部类? ( )
A.
public Class Line {
int length;
Class Point {
//内部类代码
}
}
B.
public Class Line {
//外部类代码
}
Class Point {
//内部类代码
}
C.
public Class Line {
public Point getPoint() {
return new Point(){
//内部类代码
};
}
}
D.
public Class Line {
public int calcLength() {
Class Point {
//内部类代码
}
}
}
R2-24
下列选项中,用于定义接口的关键字是( )。
A.
class
B.
interface
C.
abstract
D.
implements
R2-25
在Java中,"456"属于( )类的对象。
A.
Number
B.
String
C.
int
D.
Integer
R2-26
下列哪个类的声明是正确的?( )
A.
abstract private move(){}
B.
abstract final class HI{}
C.
protected private number;
D.
public abstract class Car{}
R2-27
下面说法正确的是?
A.
final可修饰类、变量、方法。
B.
用final修饰的变量,在程序中可对这个变量的值进行更改。
C.
定义抽象方法需有方法的返回类型、名称、参数列表和方法体。
D.
abstract可修饰类、变量、方法。
R2-28
以下关于构造函数的描述错误的是( )。
A.
构造函数的主要作用是完成对类的对象的初始化工作。
B.
构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C.
构造函数的返回类型只能是void型。
D.
一般在创建新对象时,系统会自动调用构造函数。
R2-29
类Teacher和Student是类Person的子类,下面的代码中最后一句语句的运行结果是( ).
Person p; Teacher t; Student s; //p,t and s are all non-null. if(t instanceof Person) {s=(Student)t;}
A.
表达式是合法的
B.
编译时正确,但运行时错误
C.
将构造一个Student对象
D.
表达式是错误的
R2-30
下面哪个函数是public void aMethod(){...}的重载函数?( )
A.
public void aMethod ( ){...}
B.
public int aMethod ( int m){...}
C.
void aMethod( ){...}
D.
public int aMethod(){...}
R2-31
int型public成员变量MAX_LENGTH,该值保持常数100,则定义这个变量的语句是( )。
A.
public final int MAX_LENGTH=100
B.
final int MAX_LENGTH=100
C.
public int MAX_LENGTH=100
D.
public const int MAX_LENGTH=100
R2-32
以下程序段输出结果的是( )
public class Test { public static void main(String args[]){ String str="ABCDE"; str.substring(3); str.concat("XYZ"); System.out.print(str); } }
A.
CDEXYZ
B.
ABCDE
C.
DE
D.
DEXYZ
R2-33
类的实例方法表示的是什么?( )
A.
类的属性
B.
父类对象的行为
C.
类的行为
D.
类对象的行为
R2-34
下面哪个对类的声明是错误的?
A.
class MyClass extends MySuperClass1, MySupperClass2 {}
B.
abstract class MyClass implements YourInterface1, Youriterface2 {}
C.
private class MyClass {}
D.
class MyClass extends MySuperClass implements YourInterface {}
E.
public class MyClass{}
R2-35
关于以下程序段,正确的说法是( ) 。
String s1=”abc”+”def”; String s2=new String(s1); if(s1==s2) System.out.println(“== succeeded”); if (s1.equals(s2)) System.out.println(“.equals() succeeded”);
A.
行4、行6都不执行
B.
行6执行,行4不执行
C.
行4执行,行6不执行
D.
行4与行6都将执行
R2-36
将以下哪种方法插入行6是不合法的。( ) 。
public class Test1 { public float aMethod(float a,float b) throws IOException { } } public class Test2 extends Test1{ }
A.
float aMethod(float a,float b){ }
B.
public int aMethod(int a,int b)throws Exception{ }
C.
public float aMethod(float p,float q){ }
D.
public int aMethod(int a,int b)throws IOException{ }
R2-37
下面关于缺省构造方法的描述中正确的是( )。
A.
当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法
B.
Java编译器会为所有的类创建缺省构造方法。
C.
缺省构造方法可以初始化其他方法中定义的变量
D.
如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法
R2-38
以下关于继承的叙述正确的是( )。
A.
在Java中一个类只能实现一个接口
B.
在Java中类只允许单一继承
C.
在Java中一个类不能同时继承一个类和实现一个接口
D.
在Java中接口只允许单一继承
R2-39
关于类中成员变量的作用范围,下述说法中正确的是( )。
A.
用private修饰的成员变量可以在main方法中直接使用
B.
类中所有成员变量在所有成员方法中有效
C.
用static修饰的成员变量只能在用static修饰的方法中使用
D.
只有用public修饰的变量才能在所有方法中使用
R2-40
有以下程序片段,下列哪个选项不能插入到行1。( )
1) 2) public class Interesting{ 3) //do sth 4) }
A.
public class MyClass{ }
B.
package mypackage;
C.
class OtherClass{ }
D.
import java.awt.*;
R2-41
JPanel组件的默认布局管理器是( )。
A.
CardLayout
B.
BorderLayout
C.
FlowLayout
D.
GridLayout
R2-42
Swing组件必须添加到Swing顶层容器相关的( )。
A.
选项卡上
B.
内容面板上
C.
分隔板上
D.
复选框内
R2-43
方法体内定义的变量称局部变量,下述关于局部变量的说法中错误的是( )。
A.
局部变量仅在所定义的代码块内(花括号对内)有效
B.
局部变量未经赋值不能使用
C.
局部变量不能与类中的成员变量同名
D.
局部变量不能加修饰词修饰
R2-44
编译并运行以下程序,以下描述哪个选项是正确的( )
class A{ protected boolean equals(){ return super.equals(); } }
A.
行2出错,不能成功编译
B.
编译通过运行无异常
C.
不能成功编译,行3出错
D.
编译通过但运行时出错
R2-45
编译和运行下列程序会出现什么样的结果( )。
public class Ref { public static void main(String[] args){ Ref r = new Ref(); r.amethod(r); } public void amethod(Ref r){ int i = 99; multi(r); System.out.println(i); } public void multi(Ref r){ r.i = r.i * 2; } }
A.
输出:198
B.
输出:99
C.
编译出错
D.
运行出错
R2-46
下列方法头中哪一个不与其他方法形成重载(overload)关系?( )
A.
void mmm(int i)
B.
void mmm(String s)
C.
void mmm()
D.
int mm()
R2-47
假设类A有如下定义,且a是A类的一个实例,则必定错误的选项是( )。
class A { int i; static String s; void method1() { } static void method2() { } }
A.
a.method1();
B.
System.out.println(a.i);
C.
A.method2() ;
D.
A.method1()
R2-48
下面类的定义,哪个是合法的抽象类定义。
A.
public class abstract A { abstract void unfinished(); }
B.
class A { abstract void unfinished(); }
C.
class A { abstract void unfinished() { } }
D.
abstract class A { abstract void unfinished(); }
R2-49
下列选项中,用于实现接口的关键字是 ( )。
A.
implements
B.
abstract
C.
class
D.
interface
R2-50
A派生出子类B,B派生出子类C,对于如下Java源代码正确的说法是()。
1. A a0 =new A(); 2. A a1 =new B(); 3. A a2 =new C();
A.
第1行、第2行和第3行的声明都是正确的
B.
第1、2、3行能通过编译,但第2、3行运行时出错
C.
只有第1行能通过编译
D.
第1、2行能通过编译,但第3行编译出错
R2-51
下述哪条关于构造方法的说法,不符合Java语法的规定( )。
A.
构造方法无返回值,其返回值类型必须写为void
B.
每个类至少有一个构造方法
C.
构造方法必须与类同名
D.
构造方法可以是private的
R2-52
下面说法不正确的是( )
A.
子类在构造函数中可以使用super( )来调用父类的构造函数;
B.
一个子类的对象可以接收父类对象能接收的消息;
C.
当子类对象和父类对象能接收同样的消息时,它们针对消息产生的行为可能不同;
D.
父类比它的子类的方法更多;
R2-53
非静态内部类,有时也称为实例内部类或成员内部类,它具有以下特点,除了( )。
A.
非静态内部类的实例自动持有外部类的实例引用
B.
一个内部类实例只会引用一个外部类实例
C.
外部类实例和内部类实例之间是一对多的关系
D.
在创建非静态内部类的实例时,外部类的实例不是必须存在
R2-54
下列哪些语句关于Java内存回收的说明是正确的? ( )
A.
内存回收程序允许程序员直接释放内存
B.
内存回收程序负责释放无用内存
C.
内存回收程序可以在指定的时间释放内存对象
D.
程序员必须创建一个线程来释放内存
R2-55
类中某方法定义如下:
double fun(int a,int b){
return a*1.0/b;
}
同一类内其它方法调用该方法的正确方式是( )。
A.
int x = fun(1.0,2.0)
B.
int x = fun(1,2)
C.
double a = fun(1.0,2.0)
D.
double a = fun(1,2)
R2-56
在Java中用什么关键字修饰的方法可以直接通过类名来调用?( )
A.
void
B.
private
C.
static
D.
final
R2-57
如果要使条件method( -4.4 ) == -4成立,则用到java.lang.Math 类中哪个方法?
A.
floor()
B.
round()
C.
abs()
D.
ceil()
E.
min()
F.
trunc()
R2-58
如下在一个Java抽象类中对抽象方法的声明哪个是正确的?
A.
public abstract void method();
B.
public abstract void method() {}
C.
public abstract method();
D.
public void abstract method();
R2-59
下列哪一种叙述是正确的() 。
A.
声明抽象方法不可写出大括号
B.
抽象方法的body部分必须用一对大括号{ }包住
C.
声明抽象方法,大括号可有可无
D.
abstract修饰符可修饰属性、方法和类
R2-60
对于下列代码:
String str1="java"; String str2="java"; String str3=new String("java"); StringBuffer str4=new StringBuffer("java");
以下表达式的值为true的是( )
A.
str2= =str3;
B.
str1= =str4;
C.
str3= =str4;
D.
str1= =str2;
R2-61
为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A.
static void method( )
B.
final void method( )
C.
abstract void method( )
D.
public void method( )
R2-62
若需要定义一个类属性或类方法,应使用哪种修饰符?( )
A.
static
B.
package
C.
public
D.
private