java类和对象编程题库_Java题库——Chapter8 对象和类

1)________ represents anentity(实体) in the real world that can be distinctly identified. 1) _______

A)A data field B) An object

C)A method D) A class

2)________ is a construct that defines objects of the same type.  2) _______

A)A method B) A data field

C)A class D) An object

3)An object is an instance of a ________. 3) _______

A)data B) method C) class D) program

对象是类的一个实例

4)The keyword ________ is required to declare a class.  4) _______

A)private  B) class  C)public  D) All of the above.

5)________ is invoked to create an object. 5) _______

A)A constructor

B)A method with the void return type

C)The main method

D)A method with a return type

6)Which of the following statements are true? (Choose all that apply.) 6) _______

A)Constructors must have the same name as the class itself.

B)Constructors do not have a return type, not even void.

C)Constructors are invoked using the new operator when an object is created.

D)A default no-arg constructor is provided automatically if no constructors are explicitly declared in the class.

E)At least one constructor must always be defined explicitly. 必须始终显式定义至少一个构造函数。

构造函数是在创建一个对象时由new 操作符调用的。构造函数可以不显式定义

7) Analyze the following code: (Choose all that apply.)

public classTest {public static voidmain(String[ ] args) {

A a= newA();

a.print();

}

}classA {

String s;

A(String s) {this.s =s;

}voidprint() {

System.out.println(s);

}

}

A)The program has a compilation error because class A does not have a default constructor.

B)The program has a compilation error because class A is not a public class.

C)The program would compile and run if you change A a = new A() to A a = new A("5").

D)The program compiles and runs fine and prints nothing.

当且仅当类中没有明确定义任何构造函数的时候才会自动提供一个缺省构造函数。该类中有了构造函数,不会再提供缺省构造函数了。

8)What is wrong in the following code?

classTempClass {inti;public void TempClass(intj) {int i =j;

}

}public classC {public static voidmain(String[ ] args) {

TempClass temp= new TempClass(2);

}

}

A)The program has a compilation error because TempClass does not have a constructor with an int argument.

B)The program has a compilation error because TempClass does not have a default constructor.

C)The program compiles and runs fine.

D)The program compiles fine, but it does not run because class C is not public.

注意这里的TempClass的TempClass函数并不是构造函数,该函数有void返回值!!!

9)Given the declaration Circle x = new Circle(), which of the following statement is most accurate?

A)You can assign an int value to x.

B)x contains an int value.

C)x contains a reference to a Circle object.

D)x contains an object of the Circle type.

10)Analyze the following code.

public classTest {intx;publicTest(String t) {

System.out.println("Test");

}public static voidmain(String[ ] args) {

Test test= null;

System.out.println(test.x);

}

}

A)The program has a runtime NullPointerException because test is null while executing test.x.

B)The program has a compile error because you cannot create an object from the class that defines the object.

C)The program has a compile error because x has not been initialized.

D)The program has a compile error because test is not initialized.

E)The program has a compile error because Test does not have a default constructor.

11)The default value for data field of a boolean type, numeric type, object type is ________, respectively. 11) ______

A)false, 0, null  B)true, 1, null  C)true, 1, Null  D)false, 1, null  E)true, 0, null

12)Which of the following statements are true? (Choose all that apply.) 12) ______

A)You may assign an int value to a reference variable.

B)Data fields have default values.

C)Local variables do not have default values.

D)A variable of a primitive(原始的、基本的) type holds a value of the primitive type.

E)A variable of a reference type holds a reference to where an object is stored in the memory.

D基本数据类型的变量含有基本数据类型的值

13)Analyze the following code:

public classTest {public static voidmain(String[ ] args) {doubleradius;final double PI= 3.15169;double area = radius * radius *PI;

System.out.println("Area is " +area);

}

}

A)The program has no compile errors but will get a runtime error because radius is not initialized.

B)The program has compile errors because the variable radius is not initialized.

C)The program has a compile error because a constant PI is defined inside a method.

D)The program compiles and runs fine.

14)Analyze the following code.

public classTest {intx;publicTest(String t) {

System.out.println("Test");

}public static voidmain(String[ ] args) {

Test test= newTest();

System.out.println(test.x);

}

}

A)The program has a compile error because you cannot create an object from the class that defines the object.

B)The program has a compile error because System.out.println method cannot be invoked from the constructor.

C)The program has a compile error because x has not been initialized.

D)The program has a compile error because Test does not have a default constructor.

将这道题变化一下

public classTest {intx;publicTest(String t) {

System.out.println("Test");

}public static voidmain(String[] args) {

Test test= null;

System.out.println(test.x);

}

}

a.    The program has a compile error because test is not initialized.

b.    The program has a compile error because x has not been initialized.

c.    The program has a compile error because you cannot create an object from the class that defines the object.

d.    The program has a compile error because Test does not have a default constructor.

e.    The program has a runtime NullPointerException because test is null while executing test.x.

Key:e

现在由于test=null,造成了空指针异常

15)Suppose TestCircle and Circle in Listing 7.1 in the textbook are in two separate files named TestCircle.java and Circle.java, respectively. What is the outcome of compiling TestCircle.java and then Circle.java? 15) ______

A)Neither compiles successfully.

B)Only TestCircle.java compiles.

C)Only Circle.java compiles.

D)Both compile fine.

16)Which of the following statement is most accurate? (Choose all that apply.) 16) ______

A)An object may contain other objects.

B)An object may contain the references of other objects.

C)A reference variable is an object.

D)A reference variable refers to an object.

一个对象中可能包含其他对象的引用,一个引用变量指向一个对象。

17)The java.util.Date class is introduced in this section. Which of the following code creates an object of the Date class? (Choose all that apply.)

A:

public classTest {publicTest() {newjava.util.Date();

}

}

B:

public classTest {publicTest() {

java.util.Date date= newjava.util.Date();

}

}

A)A B) B C) neither

18)Which of the following statements are correct? (Choose all that apply.) 18) ______

A)The nextInt() method in the Random class returns the next random int value.

B)The nextDouble() method in the Random class returns the next random double value.

C)When creating a Random object, you have to specify(指定) the seed or use the default seed.

D)If two Random objects have the same seed, the sequence of the random numbers obtained from these two objects are identical(相同的).

创建一个Random对象时,必须指定一个种子或使用默认的种子。种子是一个用于初始化随机数字生成器的数字。无参构造方式使用当前已经逝去的时间作为种子,创建一个Random对象。如果这两个Random对象有相同的种子,那么它们将产生相同的数列。

19)How many JFrame objects can you create and how many can you display? 19) ______

A)one  B) three  C)two  D) unlimited

20)Variables that are shared by every instances of a class are ________. 20) ______

A)public variables  B) class variables C)private variables  D) instance variables

21)You should add the static keyword in the place of ? in line ________ in the following code:

1 public class Test {

2   private int age;

3

4   public ? int square(int n) {

5     return n * n;

6   }

7

8   public ? int getAge() {

9  }

10}

A)in line 4 B) in both line 4 and line 8 C)in line 8 D) none

22)A method that is associated with an individual object is called ________. 22) ______

A)an object method B) an instance method C)a static method D) a class method

调用与单个对象关联的方法称为实例方法,只有在实例被创建后才能使用。

23)To declare a constant MAX_LENGTH as a member of the class, you write 23) ______

A)static double MAX_LENGTH = 99.98;

B)final static float MAX_LENGTH = 99.98;

C)final static double MAX_LENGTH = 99.98;

D)final static MAX_LENGTH = 99.98;

E)final double MAX_LENGTH = 99.98;

类中的常量是被类的所有对象所共享的。注意要有关键词final static和变量数据类型double

24)Analyze the following code.

public classTest {public static voidmain(String[ ] args) {int n = 2;

xMethod(n);

System.out.println("n is " +n);

}void xMethod(intn) {

n++;

}

}

A)The code prints n is 2.

B)The code has a compile error because xMethod does not return a value.

C)The code prints n is 1.

D)The code prints n is 3.

E)The code has a compile error because xMethod is not declared static.

该类由于没有创建实例,必须要用静态方法 xMethod前需要加static

25)What is the printout of the second println statement in the main method?

public classFoo {inti;static ints;public static voidmain(String[ ] args) {

Foo f1= newFoo();

System.out.println("f1.i is " + f1.i + " f1.s is " +f1.s);

Foo f2= newFoo();

System.out.println("f2.i is " + f2.i + " f2.s is " +f2.s);

Foo f3= newFoo();

System.out.println("f3.i is " + f3.i + " f3.s is " +f3.s);

}publicFoo() {

i++;

s++;

}

}

A)f2.i is 1 f2.s is 1 B) f2.i is 1 f2.s is 2C)f2.i is 2 f2.s is 1  D) f2.i is 2 f2.s is 2

注意到s是静态变量,被该类的所有对象所共享,而main方法也是一个静态方法。

26)What is the printout of the third println statement in the main method?

public classFoo {inti;static ints;public static voidmain(String[ ] args) {

Foo f1= newFoo();

System.out.println("f1.i is " + f1.i + " f1.s is " +f1.s);

Foo f2= newFoo();

System.out.println("f2.i is " + f2.i + " f2.s is " +f2.s);

Foo f3= newFoo();

System.out.println("f3.i is " + f3.i + " f3.s is " +f3.s);

}publicFoo() {

i++;

s++;

}

}

A)f3.i is 3 f3.s is 3 B)f3.i is 1 f3.s is 3 C)f3.i is 1 f3.s is 1 D)f3.i is 3 f3.s is 1 E)f3.i is 1 f3.s is 2

27)What code may be filled in the blank without causing syntax or runtime errors:

public classTest {

java.util.Date date;public static voidmain(String[ ] args) {

Test test= newTest();

System.out.println(________);

}

}

A)dateB) test.date C)test.date.toString() D) date.toString()

不能使用toString()的原因是没有创建一个指向date对象的引用。

28)To prevent a class from being instantiated(实例化), ________ 28) ______

A)use the public modifier on the constructor.

B)don't use any modifiers on the constructor.

C)use the static modifier on the constructor.

D)use the private modifier on the constructor.

为了防止类被实例化,要使用private修饰构造函数。

29)Analyze the following code:

public classTest {public static voidmain(String args[ ]) {

NClass nc= newNClass();

nc.t= nc.t++;

}

}classNClass {intt;privateNClass() {

}

}

A)The program has a compilation error because the NClass class has a private constructor.

B)The program compiles and runs fine.

C)The program does not compile because the parameter list of the main method is wrong.

D)The program compiles, but has a runtime error because t has no initial value.

接着上面的题,使用private修饰构造函数,该类就无法被实例化了!

30)Analyze the following code:

public classTest {private intt;public static voidmain(String[ ] args) {intx;

System.out.println(t);

}

}

A)The variable t is not initialized and therefore causes errors.

B)The variable t is private and therefore cannot be accessed in the main method.

C)t is non-static and it cannot be referenced in a static context in the main method.

D)The program compiles and runs fine.

E)The variable x is not initialized and therefore causes errors.

31)Analyze the following code and choose the best answer:

public classFoo {private intx;public static voidmain(String[ ] args) {

Foo foo= newFoo();

System.out.println(foo.x);

}

}

A)Since x is an instance variable, it cannot be directly used inside a main method. However, it can be accessed through an object such as foo in this code.

B)You cannot create a self-referenced object; that is, foo is created inside the class Foo.

C)Since x is defined in the class Foo, it can be accessed by any method inside the class without using an object. You can write the code to access x without creating an object such as foo in this code.

D)Since x is private, it cannot be accessed from an object foo.

不创建对象,将无法访问x,因为x不是static类型

32)Which of the following statements are true? (Choose all that apply.) 32) ______

A)Encapsulating data fields makes the program easy to maintain.

B)Encapsulating data fields makes the program short.

C)Encapsulating data fields helps prevent programming errors.

D)Use the private modifier to encapsulate data fields.

封装数据字段有助于防止编程错误

33)Suppose you wish to provide an accessor method for a boolean property finished, what signature of the method should be? 33) ______

A)public void getFinished()

B)public void isFinished()

C)public boolean isFinished()

D)public boolean getFinished()

34)Which is the advantage of encapsulation? 34) ______

A)It changes the implementation without changing a class's contract and causes no consequential changes to other code.

B)Only public methods are needed.

C)Making the class final causes no consequential changes to other code.

D)It changes a class's contract without changing the implementation and causes no consequential changes to other code.

在不更改类契约的情况下更改实现,并且不会对其他代码造成相应的更改。

35)When invoking a method with an object argument,  ________ is passed. 35) ______

A)the contents of the object

B)the reference of the object

C)a copy of the object

D)the object is copied, then the reference of the copied object

36)What is the value of myCount.count displayed?

public classTest {public static voidmain(String[ ] args) {

Count myCount= newCount();int times = 0;for (int i=0; i<100; i++)

increment(myCount, times);

System.out.println("myCount.count = " +myCount.count);

System.out.println("times = "+times);

}public static void increment(Count c, inttimes) {

c.count++;

times++;

}

}classCount {intcount;

Count(intc) {

count=c;

}

Count() {

count= 1;

}

}

A)101 B) 99 C) 98 D) 100

37)What is the value of times displayed?

public classTest {public static voidmain(String[ ] args) {

Count myCount= newCount();int times = 0;for (int i=0; i<100; i++)

increment(myCount, times);

System.out.println("myCount.count = " +myCount.count);

System.out.println("times = "+times);

}public static void increment(Count c, inttimes) {

c.count++;

times++;

}

}classCount {intcount;

Count(intc) {

count=c;

}

Count() {

count= 1;

}

}

A)99 B) 100 C) 98 D) 0 E) 101

注意这里time传递给方法进行的是值传递!方法结束后不会改变原来的值。

38)What is the output of the following program?

importjava.util.Date;public classTest {public static voidmain(String[ ] args) {

Date date= new Date(1234567);

m1(date);

System.out.print(date.getTime()+ " ");

m2(date);

System.out.println(date.getTime());

}public static voidm1(Date date) {

date= new Date(7654321);

}public static voidm2(Date date) {

date.setTime(7654321);

}

}

A)7654321 1234567  B) 1234567 1234567 C)7654321 7654321  D) 1234567 7654321

39)Given the declaration Circle[ ] x = new Circle[10], which of the following statement is most accurate? 39) ______

A)x contains a reference to an array and each element in the array can hold a Circle object.

B)x contains an array of ten objects of the Circle type.

C)x contains a reference to an array and each element in the array can hold a reference to a Circle object.

D)x contains an array of ten int values.

40)Assume java.util.Date[ ] dates = new java.util.Date[10], which of the following statements are true? (Choose all that apply.) 40) ______

A)dates = new Date() is fine, which creates a new Date object and assigns to dates.

B)dates is null.

C)dates = new java.util.Date[5] is fine, which assigns a new array to dates.

D)dates[0] is null.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是 Java 异常? Java 异常是指程序执行期间可能发生的错误或异常情况,例如除以零、数组越界、空指针引用等。当这些异常发生时,Java 虚拟机会抛出一个异常对象,并且程序的执行流程将被中断。 2. Java 异常处理机制有哪些关键字和语句? Java 异常处理机制包括以下关键字和语句: - try:用于包含可能会抛出异常的代码块。 - catch:用于捕获指定型的异常,并在捕获到异常时执行相应的处理代码。 - finally:用于包含无论是否发生异常都需要执行的代码块。 - throw:用于抛出指定的异常对象。 - throws:用于声明可能会抛出指定型异常的方法。 3. Java 中的异常分为哪几Java 中的异常分为两大Checked Exception 和 Unchecked Exception。 Checked Exception 是指在编译时就能够检查出来的异常,例如 IOException、ClassNotFoundException 等。程序必须显式地处理这些异常,否则编译不通过。 Unchecked Exception 是指在运行时才能检查出来的异常,例如 NullPointerException、ArrayIndexOutOfBoundsException 等。程序可以选择处理这些异常,但不处理也不会导致编译错误。 4. 请简要说明 try-catch-finally 的执行流程。 当程序执行到 try 块时,Java 会尝试执行其中的代码。如果在 try 块中抛出了异常,则会将异常对象传递给 catch 块进行处理。catch 块会匹配异常型,如果匹配成功,则执行相应的处理代码。如果 catch 块处理完异常后,程序需要继续执行,则会执行 finally 块中的代码。如果 finally 块中也抛出了异常,则该异常会覆盖 try 或 catch 块中的异常。 如果 try 块中没有抛出异常,则 catch 块不会被执行。如果 finally 块中抛出异常,则该异常会覆盖 try 块中的异常。 5. 什么是异常链? 异常链是指在处理异常时,将一个异常对象作为另一个异常的原因,并将它们组合成一个异常链。这样做的好处是,在抛出异常时可以同时传递多个异常信息,从而更加清晰地表示异常发生的原因。 6. 请简要说明 try-with-resources 的作用和使用方法。 try-with-resources 是 Java 7 中引入的语法,用于自动关闭实现了 AutoCloseable 接口的资源。在 try 块中声明需要使用的资源,Java 会在 try 块执行完毕后自动关闭这些资源,无需手动调用 close 方法。 try-with-resources 的语法如下: ``` try (Resource1 r1 = new Resource1(); Resource2 r2 = new Resource2()) { // 使用资源 } catch (Exception e) { // 处理异常 } ``` 7. 请简要说明 Java 中的文本 IO。 Java 中的文本 IO 主要包括两种:Reader 和 Writer。Reader 用于读取字符流,而 Writer 用于写入字符流。 Java 中常用的 Reader 包括 InputStreamReader、FileReader 和 BufferedReader,常用的 Writer 包括 OutputStreamWriter、FileWriter 和 BufferedWriter。这些提供了各种方法来读取和写入字符流,并且可以处理多种编码格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值