Java pta练习题5

判断题

1.声明成员变量时如果没有指定初始值,Java编译器会为其指定默认值。

正确答案:T

2.package语句必须放到java程序的最开始。

正确答案:T

3.类及其属性、方法可以同时有一个以上的修饰符来修饰。

正确答案:T

4.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为重载。

正确答案:T

5.在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。

正确答案:T

6.有的类定义时可以不定义构造函数,所以构造函数不是必需的。

正确答案:F

7.非静态的成员变量(实例变量)能被静态方法(类方法)和非静态方法(实例方法)所直接使用。

正确答案:F

8.实例变量只能通过对象名访问,类变量既可以通过某个对象名也可以通过类名来访问。

正确答案:T

9.

有如下类的定义:

public class Rectangle {   
 public Rectangle(int l) {  //构造方法1
  if (l > 0) {
   w = l;
   h = l;
  }
 }
 public Rectangle(int w1, int h1) {  //构造方法2
  if (w1 > 0 && h1 > 0) {
   w = w1;
   h = h1;
  }
 }
}

下面使用Rectangle类创建一个对象,是否正确?

Rectangle rect=new Rectangle();

正确答案:F

10.在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。

正确答案:T

单选题

1.假设定义了类 Test ,正确创建对象的格式是( )。

A.Test t = 1 ;

B.Test t = new Test() ;

C.Test t = new Test ;

D.Test t = Test() ;

正确答案:B

2.

阅读下列程序:

class A{
    int x;
    static int y;
    void fac(String s){
        System.out.println(“字符串:”+s);
    }
}

下列选项中描述正确的是(   )

A.x,y和s都是成员变量

B.x是成员变量,y是类变量,s是局部变量

C.x和y是实例变量,s是参数

D.x,y和s都是实例变量

正确答案:B

3.

阅读下列程序:

class A{
    int x;
    static int y;
    void fac(String s){
        System.out.println(“字符串:”+s);
    }
}

下列选项中描述正确的是(   )

A.x,y和s都是成员变量

B.x是成员变量,y是类变量,s是局部变量

C.x和y是实例变量,s是参数

D.x,y和s都是实例变量

正确答案:B

以下关于构造函数的描述错误的是( )?

A.构造函数的返回类型只能是void型

B.构造函数是类的一种特殊函数,它的方法名必须与类名相同

C.构造函数的主要作用是完成对类的对象的初始化工作

D.一般在创建新对象时,系统会自动调用构造函数

正确答案:A

5.

关于“包”的描述错误选项为:

A.包是Java语言中有效地管理类的一个机制

B.包名的目的是有效的区分名字相同的类。不同Java源文件中两个类名字相同时,它们可以通过隶属不同的包来相互区分

C.通过关键字package声明包

D.import “java.util.#;” 表示引入java.util包中所有的类

正确答案:D

6.已知name,age是Person类的成员属性,关于构造方法,下面哪个描述是正确的?

A.

public void Person(String name){
    this.name=name;
} //这是Person类中的构造方法

B.

public Person(){
    name="";
    age=10;
}
public Person(String name){
    Person();
    this.name=name;
} //这是Person类中两个构造方法

C.

public Person(String name){
    this();
    this.name=name;
} //这是Person类中唯一的构造方法

D.

public Person(){
    name="";
    age=10;
}
public Person(String name){
    this();
    this.name=name;
} //这是Person类中两个构造方法

正确答案:D

7.

一个*.java文件中可以包含多少个public类?

A.最多1个

B.最少1个

C.只能0个

D.不限制

正确答案:A

8.对于下列Dog类,哪个叙述是错误的?

 class Dog { 
      Dog(int m) { } 
      Dog(double m) { }
      int Dog(int m) { return 23; } 
      void Dog(double m) { } 
}

A.Dog(int m)与 Dog(double m)是互为重载的构造方法。

B.int Dog(int m)与void Dog(double m)是互为重载的非构造方法。

C.Dog类只有两个构造方法,而且没有无参数的构造方法

D.Dog类有3个构造方法

正确答案:D

9.类ABC定义如下:

1.public  class  ABC{
2.   public int max( int  a, int  b) {   }
3.        
4.}    

将以下哪个方法插入行3是不合法的。( )

A.public float max(float a, float b, float c){ }

B.public int max(int c, int d){ }

C.public float max(float a, float b){ }

D.private int max(int a, int b, int c){ }

正确答案:B

10.关于类和对象的关系,下列说法哪种说法是错误的?

A.类和对象都是具体的。

B.类是抽象的,对象是具体的。

C.一般情况下,在定义类之后,能创建无数个对象,可以说,类能化身千万。

D.类是引用型数据类型。

正确答案:A

11.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(  )

A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B.可以被两种类访问和引用:该类本身、该类的所有子类

C.只能被该类自身所访问和修改

D.只能被同一个包中的类访问

正确答案:C

12.下面关于缺省构造方法的描述中正确的是( )。

A.当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法

B.缺省构造方法可以初始化其他方法中定义的变量

C.Java编译器会为所有的类创建缺省构造方法。

D.如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法

正确答案:A

13.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。

A.static void method( )

B.public void method( )

C.final void method( )

D.abstract void method( )

正确答案:A

14.对于下列Dog类,哪个叙述是错误的?

class Dog{

Dog(int m){ }

Dog(double m){ }

int Dog(int m){return 23; }

void Dog(double m){ }

}

A.Dog(int m)和Dog(double m)是互为重载的构造方法

B.int Dog(int m)和void Dog(double m)是互为重载的非构造方法

C.Dog类有三个构造方法

D.Dog类有两个构造方法,而且没有无参的构造方法

正确答案:C

15.分析如下代码:

public class Test {
  private int t;

  public static void main(String[] args) {
    int x;
    System.out.println(t);
  }
}

A.变量t没有初始化,所以会引起错误。

B.变量t是私有的,因此不能在main方法中访问。

C.t是非静态的,不能在静态的main方法中引用。

D.变量x没有初始化,所以会引起错误。

正确答案:C

16.已知:Student类的定义如下:

class Student{
 int age;
}

在主方法中,有如下两段程序代码A和B:

 int a;        //变量a是局部变量
 System.out.println(a);    //A段代码
 Student student=new Student();
 System.out.println(student.age);   //B段代码

关于A和B两段代码的合法性,说法正确的是:( )。

A.都不合法

B.都合法,将输出0和0

C.A段合法,输出0;B段不合法

D.A段不合法;B段合法,输出0

正确答案:D

17.关于构造方法定义与作用,下列说法错误的是:( )。

A.用来创建类的实例时调用的方法

B.调用该方法时,对实例变量赋值

C.定义时,方法名称与类名相同,返回值类型可以不写,也可以写成void

D.一个类的构造方法可以定义多个,多个构造方法的参数有明显区别。

正确答案:C

18.关于以下代码的说明,正确的是( )。

class Main {
    static int x = 10;
    static {
        x += 5;
        System.out.println("x=" + x);
    }
    public static void main(String args[ ])
    {
        System.out.println("x=" + x);
    }
    static {
        x /= 3;
        System.out.println("x=" + x);
    }
}

A.不能通过编译,因为缺少方法名和返回类型

B.不能通过编译,因为只能有一个静态初始化器

C.编译通过,执行结果为:

x=15
x=5
x=5

D.编译通过,执行结果为:

x=3
x=8
x=8

正确答案:C

19.在Java中,针对类和成员提供了4种访问级别,以下控制级别由小到大的顺序是:( )。

A.private< 默认 < protected < public

B.默认 < private< protected < public

C.protected < 默认 < private < public

D.protected < private< 默认 < public

 正确答案:A

20.构造方法中调用其他构造方法时,this(,,...)须放在代码的第( )行。

A.可以不出现

B.1

C.末

D.无限制

 正确答案:B

程序填空题

1.jmu-Java-03面向对象基础-构造函数、this与toString(填空)

题目要求:

1.使用this调用已有的有参构造方法,将width与length分别设置为5和6。

2.在Rectangle类中覆盖toString方法。按照width=实际宽度值,length=实际长度值的格式返回。

public Rectangle(){
    this(5,6);  //空1   
}
public Rectangle(int width, int length) {
    this.width = width;
    this.length = length;
}
public String toString()  //空2
{     
    return "width="+width+"length="+length;  //空3
}

2.this在构造方法的使用

class Base {
   int x, y, z, w;
   public Base(int a, int b) {
       x = a;
       y = b;
   }
    public Base(int a, int b, int c, int d) {
        this(a,b) // 换一种办法实现赋值 x=a, y=b   //空1
        z = c;
        w = d;
    }
}
public class Main {
    public static void main(String[] args) {
        Base base = this(1, 1, 1, 1);  //空2
        System.out.println(base.x + " " + base.y + " " + base.z + " " + base.w);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值