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 |