跳转至

3 类和对象

3.2 类的基本架构介绍

下列哪个类声明是正确的?

A. abstract final class H1{}

B. abstract private move(){}

C. protected private number;

D. public abstract class Car{}

解决方案

D


以下选项符合对象和类的关系的是:

A. 人和老虎

B. 书和汽车

C. 父亲和儿子

D. 汽车和交通工具

解决方案

D


下面关于java中类的说法哪个是不正确的?

A. 类体中只能有变量定义、常量定义和成员方法的定义,不能包含“x=3;”这样的语句。

B. 构造函数是类中的特殊方法

C. 主类一定要声明为public。

D. 一个java文件中可以有多个class定义。

解决方案

C


下面哪个单词是Java语言的关键字?

A. Float

B. this

C. string

D. unsigned

解决方案

B


下列哪项是Java编程所必须的默认引用包?

A. java.sys包

B. java.lang包

C. java.net包 

D. 以上都不是

解决方案

B


以下哪个是Java的关键字?

A. NULL

B. new

C. instanceOf

D. wend

解决方案

B


下面哪个是Java语言中正确的标识符?

A. 3com

B. import

C. that

D. this

解决方案

C


数组中可以包含什么类型的元素?

A. int型

B. String型

C. 数组

D. 以上都可以

解决方案

D


在Java中函数main()的返回值是:

A. String

B. int

C. char

D. void

解决方案

D


Java应用在消费电子市场上开发平台名称为:

A. JDK

B. J2ME

C. J2SE

D. J2EE

解决方案

B


3.4 使用对象

构造方法何时被调用?

A. 类定义时

B. 创建对象时

C. 调用对象方法时

D. 使用对象的变量时

解决方案

B


在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上以下哪条语句?

A. import java.awt.*;

B. import java.applet.Applet;

C. import java.io.*;

D. import java.awt.Graphis;

解决方案

C


认真阅读代码,选择正确的选项

public  class  MyClass  {
    public  static  void  main(String  arguments[])  {
        amethod(arguments);
    }

    public  void  amethod(String[]  arguments)  {
        System.out.println(arguments);
    }
}

A. 这段代码是错误的,main方法不能接受字符串参数

B. 这段代码是错误的,amethod方法中的字符串数组尚未初始化

C. 这段代码是错误的,main方法不能调用实例方法

D. 这段代码是正确的

解决方案

C


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

A. 隐藏

B. 覆盖

C. 重载

D. Java不支持此特性

解决方案

C


下面关于构造函数的说法不正确的是:

A. 构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。

B. 构造函数不可以重载。

C. 构造函数没有返回值。

D. 构造函数一定要和类名相同

解决方案

B


命令javac -verbose中选项的作用是:

A. 显示JVM加载class的过程

B. 显示JVM的版本

C. 显示JVM调用内存的情况

D. 显示JVM的错误跟踪过程

解决方案

A


给出类的定义如下:

class Test{ 
    void test(int i){ 
        System.out.println("I am an int.");
    }
    void test(String s){        
        System.out.println("I am a string.");
    }
    public static void main(String args[]) { 
        Test t=new Test();
        char ch='y';
        t.test(ch);
    }
}

下列哪个选项正确?

A. 程序将不会编译,因为空的方法不能被覆盖。

B. 命令行t.test(ch); 将不会编译,因为没有对应的方法。

C. 代码将编译并输出以下结果: I am an int.

D. 代码将编译并输出以下结果: I am a string.

解决方案

C


编译及运行以下代码,下列选项哪个是正确的?

public class Sandys{
    private int court;
    public static void main(String argv[]){
        Sandys s = new Sandys(99);
        System.out.println(s.court);

    }   
    Sandys(int ballcount){
        court=ballcount;
    }
}

A. 编译错误:the variable court is defined as private

B. 编译错误:s is not initialized when the System.out method is called

C. 编译通过,没有输出

D. 编译通过,输出99

解决方案

D


编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为

A. .java

B. .class

C. .html

D. .exe

解决方案

B


3.6 类方法/参数传递

关于static修饰符,以下哪个选项是正确的?

A. 被static修饰符修饰的成员变量不能被修改。

B. 在方法中创建的static变量,每次方法调用中对它的值做的修改都不能保留下来。

C. 一个类的所有类对象共享这个类的static变量。

D. static修饰符只能用于修饰基本类型变量。

解决方案

C


以下对方法内的变量描述正确的是:

A. 一定在方法内所有位置可见

B. 可能在方法内局部可见

C. 可以在方法外可见

D. 方法外也可用

解决方案

B


给出如下代码:

class Test{ 
    private int m;
    public static void fun()
    { 
        //    some    code...        
    }
}

如何使成员变量m被函数fun()直接访问?

A. 将private int m 改为 protected int m

B. 将private int m 改为 public int m

C. 将private int m 改为 static int m

D. 将private int m 改为 int m

解决方案

C


类JOptionPane提供了几个产生标准对话框的方法,它们能够给用户提供有用的信息,其中包括:

A. closeDialog()

B. openDialog()

C. showInputDialog()

D. outputDialog()

解决方案

C


运行下列程序,会产生什么结果:

import java.io.*;

public class  Outer1{  
    private  int  a;  
    void  foo(double  d,final  float  f){  
        String  s; 
        final  boolean  b;  
        class  Inner{  
            void  methodInner(){  
                System.out.println("in  the  Inner");  
            } 
        }  
    }  

    public  static  void  main(String  args[])
    {
        Outer1  me=new  Outer1();
        me.foo(123,123); 
        System.out.println("outer"); 
    }  
}  

A. in the Inner outer

B. outer

C. in the Inner

D. 编译不通过

解决方案

B


编译及运行以下代码,下列选项哪个是正确的?

public  class  Ref{
    public  static  void  main(String  argv[]){
        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. 编译错误

B. 输出99

C. 输出198

D. 运行时出错

解决方案

A


3.8 访问权限

this关键字指的是?

A. 当前对象指针

B. 当前类的实例对象

C. 当前对象引用

D. 当前类的方法

解决方案

B


如果类中的成员变量仅仅可以被同一包中其他类访问,则使用如下哪个约束符?

A. private

B. public

C. protected

D. no modifier

解决方案

D


如果任何包中的子类都能访问超类中的成员,那么超类中的成员使用哪个限定词最好?

A. public

B. private

C. protected

D. transient

解决方案

C


不允许作为类及类成员的访问控制符的是:

A. public

B. private

C. static

D. protected

解决方案

C


下面哪个修饰符修饰的方法只能被本类中的其他方法使用

A. protected

B. static

C. private

D. public

解决方案

C


某个类的成员变量可以被同一个包中的子类访问,但不能被另一个包中的类(含子类)访问,该如何定义?

A. 变量应该用public做修饰。

B. 变量应该用private做修饰。

C. 变量应该用protected做修饰。

D. 变量不需做任何修饰。

解决方案

D


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

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

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

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

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

解决方案

C


3.9 内部类简介

考虑类A:

public class A{ 
    public int x=1;
    public void increaseBy(int  n){ 
        x=x+n; 
    } 
} 

以下哪个选项程序代码段不会输出4?

A.
A a = new A(); 
a.x = 3 + a.x; 
System.out.print(a.x);

B.
A a = new A(); 
a.increaseBy(2); 
a.increaseBy(1); 
System.out.print(a.x);  

C.
A a = new A(){
    public void increaseBy (int n) {
        super.increaseBy(n);
    }
}; 
a.increaseBy(4); 
System.out.print(a.x); 

D.
A a = new A(); 
a.increaseBy(3); 
System.out.print(a.x);

解决方案

C


3.10 包的应用

以下哪几段代码可以成功编译?

1)
import  java.awt.*;
package  Mypackage;
class  Myclass  {}

2)
package  MyPackage;
import  java.awt.*;
class  MyClass{}

3)
/*This  is  a  comment  */
package  MyPackage;
import  java.awt.*;
class  MyClass{}

A. 1)和2)

B. 2)和3)

C. 1)和3)

D. 1)、2)和3)

解决方案

B


创建一个名为MyPackage包的语句正确的是:

A. import MyPackage ;

B. import package MyPackage ;

C. package MyPackage ;

D. package import MyPackage ;

解决方案

C

评论