《使用Java實現(xiàn)面向對象編程》階段測試-筆試試卷 一、選擇題(共25題,每題4分,,滿分100分) 1) 在Java類中,,使用以下( D )聲明語句來定義公有的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中,,下列關于方法重載的說法中錯誤的是(CD),。 A. 方法重載要求方法名稱必須相同 B. 重載方法的參數(shù)列表必須不一致 C. 重載方法的返回類型必須一致 D. 一個方法在所屬的類中只能被重載一次 3) 給定Java代碼如下所示,,在橫線處新增下列(AC )方法,,是對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中,,下面對于構造函數(shù)的描述正確的是(D ),。 A. 類必須顯式定義構造函數(shù) B. 構造函數(shù)的返回類型是void C. 構造函數(shù)和類有相同的名稱,并且不能帶任何參數(shù) D. 一個類可以定義多個構造函數(shù) 5) 下面Java代碼的運行結果是( C ),。 class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性別 public void Penguin() { health = 10; sex = "雄"; System.out.println("執(zhí)行構造方法,。"); } 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. 執(zhí)行構造方法。 企鵝的名字是null,,健康值是0,,性別是null,。 C. 企鵝的名字是null,健康值是0,,性別是null,。 D. 執(zhí)行構造方法。 企鵝的名字是null,,健康值是10,,性別是雄。 6) 下列選項中關于Java中封裝的說法錯誤的是( D ),。 A. 封裝就是將屬性私有化,,提供公有的方法訪問私有屬性 B. 屬性的訪問方法包括setter方法和getter方法 C. setter方法用于賦值、getter方法用于取值 D. 類的屬性必須進行封裝,,否則無法通過編譯 7) 使用Java實現(xiàn)封裝,,第一步是修改屬性可見性來限制對屬性的訪問,第二步是創(chuàng)建賦值和取值方法,,用于對屬性的訪問,,第三步應該是( C )。 A. 使用賦值和取值方法訪問屬性 B. 編寫常規(guī)方法訪問屬性 C. 在賦值和取值方法中,,加入對屬性的存取限制 D. 編寫main方法創(chuàng)建對象,,調用賦值和取值方法訪問屬性 8) 分析如下所示的Java代碼,其中this關鍵字的意思是(B ),。 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中,,以下程序編譯運行后的輸出結果為(D )。 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語言中,,下列關于類的繼承的描述,,正確的是(B )。 A. 一個類可以繼承多個父類 B. 一個類可以具有多個子類 C. 子類可以使用父類的所有方法 D. 子類一定比父類有更多的成員方法 11) Java中,,如果類C是類B的子類,,類B是類A的子類,那么下面描述正確的是(A ),。 A. C不僅繼承了B中的公有成員,,同樣也繼承了A中的公有成員 B. C只繼承了B中的成員 C. C只繼承了A中的成員 D. C不能繼承A或B中的成員 12) 給定一個Java程序Test.java的代碼如下所示,編譯時,,會出現(xiàn)以下( A )情況,。
A. 編譯通過 B. 在第1行引發(fā)編譯錯誤 C. 在第2行引發(fā)編譯錯誤 D. 在第3行引發(fā)編譯錯誤 13) 給定如下一個Java源文件Child.java,編譯并運行Child.java,,以下結果正確的是( B ),。
A. 編譯錯誤:沒有找到構造器Child() B. 編譯錯誤:沒有找到構造器Parent1() C. 正確運行,沒有輸出值 D. 正確運行,,輸出結果為:parent2 14) 給定Java程序Child.java的代碼如下所示,,則編譯運行該類的結果是( C ),。 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關鍵字的說法錯誤的是( B )。 A. super關鍵字是在子類對象內部指代其父類對象的引用 B. super關鍵字不僅可以指代子類的直接父類,,還可以指代父類的父類 C. 子類可以通過super關鍵字調用父類的方法 D. 子類可以通過super關鍵字調用父類的屬性 16) 分析如下所示的Java代碼,,則選項中的說法正確的是( C )。 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類的構造函數(shù)中參數(shù)名稱應與其父類構造函數(shù)中的參數(shù)名相同 B. 第3行錯誤,,應使用super關鍵字調用父類的name屬性,改為super.name="hello"; C. 第4行錯誤,,調用父類構造方法的語句必須放在子類構造方法中的第一行 D. 程序編譯通過,,無錯誤 17) 以下關于Object類說法錯誤的是( B )。 A. 一切類都直接或間接繼承自Object類 B. 接口亦繼承Object類 C. Object類中定義了toString()方法 D. Object類在java.lang包中) 18) 在Java中,,多態(tài)的實現(xiàn)不僅能減少編碼的工作量,,還能大大提高程序的可維護性及可擴展性,那么實現(xiàn)多態(tài)的步驟包括以下幾個方面除了( ),。 A. 子類重寫父類的方法 B. 子類重載同一個方法 C. 定義方法時,,把父類類型作為參數(shù)類型;調用方法時,,把父類或子類的對象作為參 數(shù)傳入方法 D. 運行時,根據(jù)實際創(chuàng)建的對象類型動態(tài)決定使用哪個方法 19) 給定Java代碼如下所示,,則編譯運行后,,輸出結果是(C )。
A. 1 B. 1.0 C. 3 D. 3.3333333333333335 20) 分析如下Java代碼,,如果想在控制臺上輸出“B類的test()方法”,,則在橫線處應填入(A )。 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代碼,,輸出結果是( D ),。父類不能調用子類獨有的方法 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接口的說法錯誤的是(CD ),。 A. 一個Java接口是一些方法特征的集合,,但沒有方法的實現(xiàn) B. Java接口中定義的方法在不同的地方被實現(xiàn),,可以具有完全不同的行為 C. Java接口中可以聲明私有成員 D. Java接口不能被實例化 23) 在Java接口中定義常量,,下面語法錯誤的是(D ),。 A. static int MALE = 1; B. final int MALE = 1; C. int MALE = 1; D. private int MALE = 1; 24) 在Java接口中,,下列選項中屬于有效的方法聲明是( AB ),。 A. public void aMethod(); B. void aMethod(); C. void aMethod(){} D. private void aMethod(); 25) 給定如下Java程序代碼,,在橫線處加入( AB )語句,,可以使這段代碼編譯通過,。 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(); |
|