习题2
一、判断题
1.一个类定义了一个或多个构造方法,则Java不提供默认的构造方法。( ) 2.如果定义的类中没有给出构造方法,系统也不会提供构造方法。( ) 3.可以通过类名直接访问类变量。( )
4.非static修饰的方法既能被对象调用,又能用类名直接调用。( ) 5.static修饰的类方法既能被对象调用,又能用类名直接调用。( ) 6.一个类的所有对象共享static修饰的类变量。( )
7.类由两部分组成,一部分是变量的定义,一部分是方法的定义。( ) 8.方法的定义由方法的声明和方法体等两部分组成。( ) 9.方法中的形参可以和方法所属类的属性(域)同名。( )
10.package语句只能放到Java源程序除注释之外的第一行位置。( ) 11.Java应用程序的人口main方法只有一种定义。( ) 12.静态成员域具有全局作用域范围。( )
13.类成员变量可无须初始化,由系统自动进行初始化。( ) 14.在类体部分定义时,类的构造方法、成员域和成员方法的出现顺序在语法上有严格限制。 ( )
15.类的实例对象的生命周期包括实例对象的创建、使用、废弃、垃圾的回收。( )
二、选择题
1.下述哪个说法是不正确的?( )
A.局部变量在使用之前无须初始化,因为有该变量类型的默认值 B.类成员变量由系统自动进行初始化 C.参数的作用域就是所在的方法
D.for语句中定义的变量,当for语句执行完时,该变量就消亡了 2.下述哪一个关键字不是类及类成员的访问控制符?( ) A.public B.private C.static D.protected 3.考虑以下的方法头声明:
public void myMethod(int num,char letter) 下列哪个描述是正确的?( )
A. 这个方法有个int型的参数,它的形式参数是letter B.这个方法有个int型的参数,它的形式参数是num
C.这个方法有个char型的参数,它的实际参数是myMethod D.这个方法是一个构造方法
4.假设有个类已经定义了下述的变量:
int num1=10; int num2二20;
String word=new String(\; double answer=25.5; 另外定义了下列方法头:
public int stuff(String s,int x,int y) 以下哪个是正确的方法调用?( )
1
A.num1=stuff (”hello”,num1,num1); B,answer=stuff (word,answer,num2); C.num2=stuff(”hello”,num1,answer); D.num1=stuff(num1,num2,word); 5.下面哪一项不是构造方法的特点?( ) A.构造方法名必须与类名相同 B.构造方法不具有任何返回类型 C.任何一个类都含有构造方法 D.构造方法修饰词只能是public
6.假设已声明了一个类A的两个对象a1、a2,为了初始化a1和a2,下面语句正确的是 ( )。
A. a1,a2=new A() B. a1=A.new();a2=A.new() C. a1=new();a2=new() D. a1=new A();a2=new A() 7.以下程序的运行结果为( )。 public class Test ( int value;
public static void main (String args [] ) { Test t=new Test(); if (t==null) (
System.out .println (\ } else{
System.out .println (t.value); } } }
A. 0 B. null C. NoObject D. 编译出错
10.给定如下代码: class Circle{
String name, radius; int r;
public Circle (String n) name=n; }
public Circle (String n,int a){ name=n; r=a; )
public Circle (String n,String d, int a){ radius=d; }
2
}
要在第三个构造方法的空白处填上一行代码使之能够调用第二个构造方法,这行代码应该是( )。
A. Circle(n,a); B. this(Circle(n,a)); C. this(n,a); D. this(name,a);
11.下面哪个代码片段是错误的?( ) A. package mypackage;
public class Rectangle {//doing something'..} B. import java.io.*; package mypackage;
public class Rectangle {//doing something'\C. import java.io.*;
class Circle{//doing something\
public class Rectangle {//doing something...} D. import java.io.*; import java.awt.*;
public class Rectangle {//doing something...}
12.下列选项中,用于声明包名的关键字是( )。
A. import B. package C. interface D
13.下列各种Java类的定义,哪些是错误的?( ) A. class MyClass{
private int Val; public int getVal(){ return Val; } }
B. class MyClass{
private static int Val; public int getVal(){ return val; } }
C. class MyClass{
private int Va!;
public static iht getVal(){ return Val; } }
D. class MyClass{
3
. protected private static int Val; public static int getVal(){ return Val; } }
14.某类的成员方法只能被自己调用,修饰该方法的是( )。
A. public B. protected C. private D. 无修饰符 15.另外的类要获取以下MyClass类中的member的值,采用的语句是( )。 public class MyClass{
private static int member=l; public static int getMember(){ return member; } };
A. myClass.member B. new myClass().member C. myClass.getMember() D. myClass().getMember()
16.下面关于变量的说法,哪个是不正确的?( ) A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被执行时创建 D.局部变量在使用前必须被初始化
17.在Java中,以下哪一个关键字使类不能派生出子类?( ) A.final B.public C.private D.volatile
18.关于public static void main方法的参数描述不正确的是( )。
A.String args[] B.String[] args C.String a[] D.String args
19.下列整型的最终属性i的定义中,正确的是( )。 A.final B.static int i;
C.static final int i=234; D.final float i=3.14f; 20.类方法的修饰符是( )。
A.static B.class C.public D.void
22.类Line的定义如下:
class Line{
private int a,b;
public Line(int x,int y){ this.x=x; this.y=y; }
其中的this代表( )。
A.类名Line B.父类的对象 C. Line类实例的当前对象引用 D.this指针
4