1. 程式人生 > >Java學習總結第十六天Java類與物件筆試題(一)

Java學習總結第十六天Java類與物件筆試題(一)

1) 在Java類中,使用以下( )宣告語句來定義公有的int型常量MAX。

A. public int MAX = 100;

B. final int MAX = 100;

C. public static int MAX = 100;

D. public static final int MAX = 100;

2) 在Java中,下列關於方法過載的說法中錯誤的是( )。

A. 方法過載要求方法名稱必須相同

B. 過載方法的引數列表必須不一致

C. 過載方法的返回型別必須一致

D. 一個方法在所屬的類中只能被過載一次

3) 給定Java程式碼如下所示,在橫線處新增下列( )方法,是對cal方法的過載。

public class Test{

  public void cal(int x, int y, int z) {}

}

A. public int cal(int x, int y, float z){ return 0; }

B. public int cal(int x, int y, int z){ return 0; }

C. public void cal(int x, int z){ }

D. public void cal(int z, int y, int x){ }

4) 在Java中,下面對於建構函式的描述正確的是( )。

A. 類必須顯式定義建構函式

B. 建構函式的返回型別是void

C. 建構函式和類有相同的名稱,並且不能帶任何引數

D. 一個類可以定義多個建構函式

5) 下面Java程式碼的執行結果是(  )。

class Penguin {

private String name=null; // 名字

private int health=0; // 健康值

private String sex=null; // 性別

public void Penguin() {

health = 10;

sex = "雄";

System.out.println("執行構造方法。");

}

public void print() {

System.out.println("企鵝的名字是" + name +

",健康值是" + health + ",性別是" + sex+ "。");

}

public static void main(String[] args) {

Penguin pgn = new Penguin();

pgn.print();

}

}

A. 企鵝的名字是null,健康值是10,性別是雄。

B. 執行構造方法。

     企鵝的名字是null,健康值是0,性別是null。

C. 企鵝的名字是null,健康值是0,性別是null。

D. 執行構造方法。

     企鵝的名字是null,健康值是10,性別是雄。

6) 下列選項中關於Java中封裝的說法錯誤的是( )。

A. 封裝就是將屬性私有化,提供公有的方法訪問私有屬性

B. 屬性的訪問方法包括setter方法和getter方法

C. setter方法用於賦值、getter方法用於取值

D. 類的屬性必須進行封裝,否則無法通過編譯

7) 使用Java實現封裝,第一步是修改屬性可見性來限制對屬性的訪問,第二步是建立賦值和取值方法,用於對屬性的訪問,第三步應該是( )。

A. 使用賦值和取值方法訪問屬性

B. 編寫常規方法訪問屬性

C. 在賦值和取值方法中,加入對屬性的存取限制

D. 編寫main方法建立物件,呼叫賦值和取值方法訪問屬性

8) 分析如下所示的Java程式碼,其中this關鍵字的意思是( )。

public class Test {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;            //this關鍵字所在的行

}

}

A. name屬性

B. Test類的內部指代自身的引用

C. Test類的物件引用Test類的其他物件

D. 指所在的方法

9) 在Java中,以下程式編譯執行後的輸出結果為( )。

public class Test {

    int x, y;

    Test(int x, int y) {

        this.x = x;

        this.y = y;

    }

    public static void main(String[] args) {

        Test pt1, pt2;

        pt1 = new Test(3, 3);

        pt2 = new Test(4, 4);

        System.out.print(pt1.x + pt2.x);

    }

}

A. 6

B. 3 4

C. 8

D. 7

10) 在Java語言中,下列關於類的繼承的描述,正確的是( )。

A. 一個類可以繼承多個父類

B. 一個類可以具有多個子類

C. 子類可以使用父類的所有方法

D. 子類一定比父類有更多的成員方法

11) Java中,如果類C是類B的子類,類B是類A的子類,那麼下面描述正確的是( )。

A. C不僅繼承了B中的公有成員,同樣也繼承了A中的公有成員

B. C只繼承了B中的成員

C. C只繼承了A中的成員

D. C不能繼承A或B中的成員

12) 給定一個Java程式Test.java的程式碼如下所示,編譯時,會出現以下( )情況。

class Parent {

public int count() {               // 第1行

return 0;

}

}

public class Test  extends Parent {

private int i;

public int count() {               // 第2行

return i % 9;                // 第3行

}

}

A. 編譯通過

B. 在第1行引發編譯錯誤

C. 在第2行引發編譯錯誤

D. 在第3行引發編譯錯誤

13) 給定如下一個Java原始檔Child.java,編譯並執行Child.java,以下結果正確的是( )。

class Parent1 {

    Parent1(String s){

        System.out.println(s);

    }

}

class Parent2  extends Parent1{

    Parent2(){

        System.out.println("parent2");

    }

}

public class Child extends Parent2 {

    public static void main(String[] args) {

        Child child = new Child();

    }

}

A. 編譯錯誤:沒有找到構造器Child()

B. 編譯錯誤:沒有找到構造器Parent1()

C. 正確執行,沒有輸出值

D. 正確執行,輸出結果為:parent2

14) 給定Java程式Child.java的程式碼如下所示,則編譯執行該類的結果是( )。

class Parent {

    Parent() {

        System.out.println("parent");

    }

}

public class Child extends Parent {

    Child(String s) {

        System.out.println(s);

    }

    public static void main(String[] args) {

        Child child = new Child("child");

    }

}

A. 輸出:child

B. 輸出:child

     parent

C. 輸出:parent

     child

D. 編譯錯誤

15) 下列選項中關於Java中super關鍵字的說法錯誤的是( )。

A. super關鍵字是在子類物件內部指代其父類物件的引用

B. super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類

C. 子類可以通過super關鍵字呼叫父類的方法

D. 子類可以通過super關鍵字呼叫父類的屬性

16) 分析如下所示的Java程式碼,則選項中的說法正確的是( )。

class Parent{

public String name;

public Parent(String pName){

this.name = pName;

}

}

public class Test  extends Parent {  //1

public Test(String Name){               //2

name="hello";          //3

super("kitty");          //4

}

}

A. 第2行錯誤,Test類的建構函式中引數名稱應與其父類建構函式中的引數名相同

B. 第3行錯誤,應使用super關鍵字呼叫父類的name屬性,改為super.name="hello";

C. 第4行錯誤,呼叫父類構造方法的語句必須放在子類構造方法中的第一行

D. 程式編譯通過,無錯誤

17) 以下關於Object類說法錯誤的是( )。

A. 一切類都直接或間接繼承自Object類

B. 介面亦繼承Object類

C. Object類中定義了toString()方法

D. Object類在java.lang包中)

18) 在Java中,多型的實現不僅能減少編碼的工作量,還能大大提高程式的可維護性及可擴充套件性,那麼實現多型的步驟包括以下幾個方面除了( )。

A. 子類重寫父類的方法

B. 子類過載同一個方法

C. 定義方法時,把父類型別作為引數型別;呼叫方法時,把父類或子類的物件作為參 數傳入方法

D. 執行時,根據實際建立的物件型別動態決定使用哪個方法

19) 給定Java程式碼如下所示,則編譯執行後,輸出結果是( )。

class Parent {

  public void count() {

    System.out.println(10%3);

  }

}

public class Child  extends Parent{

  public void count() {

    System.out.println(10/3);

  }

  public static void main(String args[]) {

    Parent p = new Child();

    p.count();

  }

}

A. 1

B. 1.0

C. 3

D. 3.3333333333333335

20) 分析如下Java程式碼,如果想在控制檯上輸出“B類的test()方法”,則在橫線處應填入( )。

class A {

    public void test() {

        System.out.println("A類的test()方法");

    }

}

class B extends A {

    public void test() {

        System.out.println("B類的test()方法");

    }

    public static void main(String args[]) {

    }

}

A. A a = new B();

      a.test();

B. A a = new A();

     a.test();

C. B b = new A();

     b.test();

D. B b = new B();

     b.test();

21) 編譯執行如下Java程式碼,輸出結果是(   )。

class Base {

public void method(){

System.out.print ("Base method");

}

}

class Child extends Base{

public void methodB(){

System.out.print ("Child methodB");

}

}

class Sample {

public static void main(String[] args) {

Base base= new Child();

base.methodB();

}

}

A. Base method

B. Child methodB

C. Base method Child MethodB

D. 編譯錯誤

22) 下面關於Java介面的說法錯誤的是( )。

A. 一個Java介面是一些方法特徵的集合,但沒有方法的實現

B. Java介面中定義的方法在不同的地方被實現,可以具有完全不同的行為

C. Java介面中可以宣告私有成員

D. Java介面不能被例項化

23) 在Java介面中定義常量,下面語法錯誤的是( )。

A. static int MALE = 1;

B. final int MALE = 1;

C. int MALE = 1;

D. private int MALE = 1;

24) 在Java介面中,下列選項中屬於有效的方法宣告是( )。

A. public void aMethod();

B. void aMethod();

C. void aMethod(){}

D. private void aMethod(); 

25) 給定如下Java程式程式碼,在橫線處加入( )語句,可以使這段程式碼編譯通過。

interface Parent{

    public int count(int i);

}

public class Test implements Parent {

    public int count(int i){

        return i % 9;

}

  public static void main(String[] args){

        ________________

        int i = p.count(20);

    }

}

A. Test p = new Test();

B. Parent p = new Test();

C. Parent p = new Parent();

D. Test p = new Parent();

1

2

3

4

5

6

7

8

9

10

11

12

13

B

D

C

D

C

D

D

B

D

B

A

A

B

14

15

16

17

18

19

20

21

22

23

24

25

C

B

C

B

C

C

A

B

C

D

B

A