變數提供了程式可以操作的命名儲存。 Java中的每個變數都有一個型別,它決定了變數記憶體的大小和布局; 可以儲存在該儲存器中的值的範圍; 以及可以應用於變數的操作集。
變數需要先宣告才能使用,以下是變數宣告的基本形式 -
data type variable [ = value][, variable [ = value] ...] ;
這裡data type
是Java的資料型別之一,variable
是變數的名稱。要宣告具有相同型別的多個變數,可以使用逗號分隔列表。
以下是Java中變數宣告和初始化的範例 -
int a, b, c; // 宣告三個int型別變數:a, b 和 c
int a = 10, b = 10; // 初始化它們的值
byte B = 22; // 宣告並初始化一個 byte 型別的變數:B
double pi = 3.14159; // 宣告並賦值一個 double 型別的變數:PI
char a = 'a'; // 宣告char型別變數 a,並初始化值為:'a'
本章將解釋Java語言中的各種變數型別。Java中有三種變數 -
範例
在這裡,age
是一個區域性變數。 這是在dogAge()
方法中定義的,它的範圍僅限於此方法。
public class Test {
public void dogAge() {
int age = 0;
age = age + 5;
System.out.println("Dog age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.dogAge();
}
}
執行上面範例程式碼,得到以下結果:
Dog age is : 5
範例
下面範例中使用變數 age
,但不初始化它,因此在編譯時會出錯。
public class Test {
public void dogAge() {
int age;
age = age + 5;
System.out.println("Dog age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.dogAge();
}
}
執行上面範例程式碼,得到以下結果(出錯):
Test.java:4:variable number might not have been initialized
age = age + 5;
^
1 error
new
建立物件時會建立範例變數,並在銷毀物件時銷毀範例變數。0
,對於布林值,它為false
,對於物件參照,它為null
。 可以在宣告期間或建構函式中指定值。ObjectReference.VariableName
。範例程式碼
import java.io.*;
public class Employee {
// 此範例變數對於子類都是可見的。
public String name;
// salary 變數僅在Employee類中可見。
private double salary;
// name變數在建構函式中指定。
public Employee (String empName) {
name = empName;
}
// 為 salary 變數賦值
public void setSalary(double empSal) {
salary = empSal;
}
// 此方法列印員工詳細資訊。
public void printEmp() {
System.out.println("name : " + name );
System.out.println("salary :" + salary);
}
public static void main(String args[]) {
Employee empOne = new Employee("Maxsu");
empOne.setSalary(15999);
empOne.printEmp();
}
}
執行上面範例程式碼,得到以下結果:
name : Maxsu
salary :15999.0
static
關鍵字宣告,但在方法,建構函式或塊之外。public/private
,final
和static
的變數。常數的初始值不能更改。final
之外,很少使用靜態變數,並將其用作公共或私有常數。0
; 對於布林型別來說,預設值為false
; 對於物件參照,預設值為null
。 可以在宣告期間或建構函式中指定值。 此外,可以在特殊的靜態初始化程式塊中分配值。ClassName.VariableName
呼叫來存取靜態變數。public static final
時,變數名(常數)都是大寫的。 如果靜態變數不是public
和final
,則命名語法與範例和區域性變數命名規則相同。範例
import java.io.*;
public class Employee {
// salary變數是一個私有靜態變數
private static double salary;
// DEPARTMENT是一個常數
public static final String DEPARTMENT = "研發部";
public static void main(String args[]) {
salary = 19999;
System.out.println(DEPARTMENT + "平均薪水:" + salary);
}
}
執行上面範例程式碼,得到以下結果 -
研發部平均薪水:19999
註 - 如果從外部類存取變數,則應作為:
Employee.DEPARTMENT
。