首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 基礎技能測驗入門篇:final 方法繼承、參數傳遞、包機制與陣列聲明

     編輯:Java 程式設計入門

這組經典 Java 技能測驗題聚焦於 final 方法繼承規則、基本類型與引用類型參數傳遞差異、包訪問權限、陣列聲明語法、字串操作合法性等基石知識,適合初階開發者查漏補缺。

第 1 題:final 方法可被繼承但不可覆寫


class Base {
    public final void amethod() { System.out.println("amethod"); }
}
public class Fin extends Base {
    public static void main(String[] argv) {
        Base b = new Base(); b.amethod();
    }
}

正解:D. 編譯運行成功,輸出 "amethod"

解析:final 方法禁止覆寫(override),但不禁止繼承。子類 Fin 繼承了 Base 的 final 方法,main 中實例化 Base 調用 amethod() 完全合法。A、B 錯誤理解 final 作用範圍,C 無運行時錯誤依據。

第 2 題:基本類型傳值、靜態變量共享


static int j = 20;
main() { int i=10; p.amethod(i); print(i); print(j); }
amethod(int x) { x=x*2; j=j*2; }

正解:C. 輸出 10 和 40

解析:i 為基本類型 int,傳值調用,amethod 修改副本 x 不影響原變量 i(仍為 10)。j 為 static 類變量,屬類共享,amethod 將其乘 2 變為 40,主線程打印見證變化。核心考點:Java 唯有傳值調用,基本類型傳值、引用類型傳引用值。

第 3 題:包機制與預設訪問權限


// P1.java
package MyPackage;
class P1 { void afancymethod() { ... } }

// P2.java
public class P2 extends P1 { afancymethod(); }

正解:D. P1 編譯通過,P2 編譯錯誤

解析:P1 無修飾符為包級訪問權限。P2 雖繼承 P1,但位於無包(默認包)中,不同包下子類無法訪問父類包級成員。若 P2 加上 package MyPackage; 則通過。考點:包級訪問權限不跨包,即使繼承關係也不例外。

第 4 題:陣列引用聲明語法

題目:哪句聲明適用於引用 50 個 String 物件的陣列?

選項:A. char a[][]; B. String a[]; C. String []a; D. Object a[50]; E. String a[50];

正解:B、C

解析:Java 陣列聲明語法:Type[] varName 或 Type varName[],長度不寫在聲明中(由 new 指定)。B、C 均為合法 String 陣列引用聲明。D、E 為 C/C++ 風格非法語法。A 為 char 二維陣列。題目問「聲明變量引用陣列」,非「創建陣列實例」,故 B、C 正確。

第 5 題:字串不可變性與操作合法性


String s = "Example";
A. s >>>= 3;  // 其餘選項截斷

解析:String 為不可變類,無位移賦值運算符 >>>=,且字串不支援位運算。此選項編譯錯誤。完整題目通常包含 substring、concat、charAt 等合法操作選項,核心考察字串不可變與合法 API 調用。


五道題橫跨繼承機制、參數傳遞語義、包訪問控制、陣列聲明規範、字串特性,構成 Java 基礎語法的「五項基本功」。建議初學者在 IDE 中逐行實驗,體會編譯器與 JVM 的真實反饋。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved