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

Java 變數類型詳解:區域、實例、類別變數與宣告初始化規則

     編輯:Java 程式設計入門

Java 變數類型詳解:區域、實例、類別變數與宣告初始化規則

Java 變數使用前必須宣告。基本語法:

type identifier [= value] [, identifier [= value] ...];

宣告範例

int a, b, c;
int d = 3, e = 4, f = 5;
byte z = 22;
String s = "runoob";
double pi = 3.14159;
char x = 'x';

三大變數類型

類型宣告位置生命週期預設值存取修飾符儲存位置
區域變數方法/建構子/區塊內方法執行期間無 (必須初始化)不可用堆疊
實例變數 (成員變數)類別中、方法外物件存活期間有 (0/false/null)可用堆疊 (物件內)
類別變數 (static)類別中、方法外、加 static程式執行期間有 (0/false/null)可用方法區 (元空間)

區域變數

  • 宣告於方法、建構子、區塊 ({}) 內。
  • 隨區塊進入建立,退出銷毀。
  • 無預設值,使用前必須顯式初始化,否則編譯錯誤。
  • 不可使用存取修飾符。
  • 僅在宣告區塊內可見。

範例 1:正確初始化

public void pupAge() {
    int age = 0; // 初始化
    age = age + 7;
    System.out.println("小狗年齡: " + age); // 7
}

範例 2:未初始化導致編譯錯誤

public void pupAge() {
    int age; // 未初始化
    age = age + 7; // 編譯錯誤: variable might not have been initialized
}

實例變數

  • 屬於物件,每個實例擁有獨立副本。
  • 物件建立 (new) 時建立,物件被 GC 回收時銷毀。
  • 有預設值:數值 0、布林 false、引用 null。
  • 可用存取修飾符控制可見性 (建議 private + getter/setter)。
  • 靜態方法中需透過物件引用存取:obj.field。

範例:Employee 類別

public class Employee {
    public String name;      // 公開 (不建議)
    private double salary;   // 封裝
    public Employee(String n) { name = n; }
    public void setSalary(double s) { salary = s; }
    public void printEmp() {
        System.out.println("名字: " + name);
        System.out.println("薪水: " + salary);
    }
    public static void main(String[] args) {
        Employee e = new Employee("RUNOOB");
        e.setSalary(1000);
        e.printEmp();
    }
}
// 輸出:名字: RUNOOB / 薪水: 1000.0

類別變數 (靜態變數)

  • static 關鍵字宣告,屬於類別,全類別共享單一副本。
  • 程式啟動時建立,結束時銷毀。
  • 常與 final 合用定義常量:public static final String DEPT = "開發";
  • 透過 ClassName.var 存取 (也可用物件引用,但不推薦)。
  • 命名慣例:常量全大寫底線;非常量遵循駝峰式。

範例

public class Employee {
    private static double salary;
    public static final String DEPARTMENT = "開發人員";
    public static void main(String[] args) {
        salary = 10000;
        System.out.println(DEPARTMENT + "平均薪資: " + salary);
    }
}
// 輸出:開發人員平均薪資: 10000.0
// 外部存取:Employee.DEPARTMENT

變數命名規範

  • 以字母、_、$ 開頭,可含數字,不可為關鍵字。
  • 駝峰式: 區域/實例/類別變數 lowerCamelCase (如 myList)。
  • 常量: UPPER_SNAKE_CASE (如 MAX_SIZE)。
  • 避免: 單字元 (除迴圈計數器)、拼音、中英混雜。

常見誤區與避坑

  1. 區域變數未初始化: 編譯直接報錯,良性攔截。
  2. 靜態方法存取非靜態成員: 編譯錯誤,需建立實例。
  3. final 參考型別變數: 引用不可變,但物件內容可修改 (final List list = new ArrayList(); list.add(1); // OK)。
  4. 遮蔽: 區域變數同名會遮蔽實例/類別變數,用 this.field / Class.field 澄清。
  5. 預設值依賴: 實例/類別變數有預設值,但明確初始化更清晰,避免邏輯漏洞。

理解變數類型與生命週期,是撰寫正確、高效、可維護 Java 程式的基石。

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