Java 中變數型別的示例
Java 中有三種變數:
- 區域性變數
- 例項變數
- 類/靜態變數
區域性變數
- 區域性變數在方法、建構函式或程式碼塊中宣告。
- 進入方法、建構函式或程式碼塊時建立區域性變數,並在退出方法、建構函式或程式碼塊時銷燬該變數。
- 訪問修飾符不能用於區域性變數。
- 區域性變數僅在其宣告的方法、建構函式或程式碼塊內可見。
- 區域性變數在內部以棧的方式實現。
- 區域性變數沒有預設值,因此在第一次使用之前應宣告區域性變數並分配初始值。
示例
這裡,age 是一個區域性變數。它在 pupAge() 方法內部定義,其作用域僅限於此方法。
public class Test {
public void pupAge() {
int age = 0; age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test(); test.pupAge();
}
}輸出
這將產生以下結果:
Puppy age is: 7
示例
下面的示例在沒有初始化的情況下使用 age,因此在編譯時會報錯。 線上演示
public class Test {
public void pupAge() {
int age; age = age + 7; System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test(); test.pupAge();
}
}輸出
編譯時將產生以下錯誤:
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
例項變數
- 例項變數在類中宣告,但在方法、建構函式或任何程式碼塊之外宣告。
- 當在堆中為物件分配空間時,會為每個例項變數值建立一個槽。
- 使用關鍵字“new”建立物件時建立例項變數,並在銷燬物件時銷燬例項變數。
- 例項變數儲存必須被多個方法、建構函式或程式碼塊引用的值,或者物件狀態的基本部分,這些部分必須貫穿整個類。
- 例項變數可以在類級別在使用之前或之後宣告。
- 可以為例項變數指定訪問修飾符。
- 例項變數對類中的所有方法、建構函式和程式碼塊可見。通常,建議將這些變數設為私有(訪問級別)。但是,可以使用訪問修飾符為子類提供這些變數的可見性。
- 例項變數具有預設值。對於數字,預設值為 0;對於布林值,為 false;對於物件引用,為 null。可以在宣告期間或在建構函式內分配值。
- 可以透過在類內部呼叫變數名稱來直接訪問例項變數。但是,在靜態方法中(當例項變數被賦予可訪問性時),應使用完全限定名稱來呼叫它們:ObjectReference.VariableName。
示例
import java.io.*;
public class Employee {
// this instance variable is visible for any child class.
public String name;
// salary variable is visible in Employee class only.
private double salary;
// The name variable is assigned in the constructor.
public Employee (String empName) {
name = empName;
}
// The salary variable is assigned a value.
public void setSalary(double empSal) {
salary = empSal;
}
// This method prints the employee details.
public void printEmp() {
System.out.println("name : " + name );
System.out.println("salary :" + salary);
}
public static void main(String args[]) {
Employee empOne = new Employee("Ransika");
empOne.setSalary(1000); empOne.printEmp();
}
}輸出
這將產生以下結果:
name : Ransika salary :1000.0
類/靜態變數
- 類變數也稱為靜態變數,是在類中使用 static 關鍵字宣告的,但在方法、建構函式或程式碼塊之外宣告。
- 無論從類中建立多少個物件,每個類變數都只有一個副本。
- 除了宣告為常量之外,靜態變數很少使用。常量是宣告為 public/private、final 和 static 的變數。常量變數的值永遠不會改變。
- 靜態變數儲存在靜態記憶體中。除了宣告為 final 並用作公共或私有常量之外,很少使用靜態變數。
- 程式啟動時建立靜態變數,程式停止時銷燬靜態變數。
- 可見性與例項變數類似。但是,大多數靜態變數都宣告為 public,因為它們必須對類的使用者可用。
- 預設值與例項變數相同。對於數字,預設值為 0;對於布林值,為 false;對於物件引用,為 null。可以在宣告期間或在建構函式內分配值。此外,可以在特殊的靜態初始化塊中分配值。
- 可以透過使用類名 ClassName.VariableName 呼叫靜態變數來訪問它們。
- 當將類變數宣告為 public static final 時,變數名稱(常量)全部大寫。如果靜態變數不是 public 和 final,則命名語法與例項和區域性變數相同。
示例
import java.io.*;
public class Employee {
// salary variable is a private static variable private static double salary;
// DEPARTMENT is a constant public static final String DEPARTMENT = "Development ";
public static void main(String args[]) {
salary = 1000;
System.out.println(DEPARTMENT + "average salary:" + salary);
}
}輸出
這將產生以下結果:
Development average salary:1000
注意 - 如果從外部類訪問變數,則應將常量訪問為 Employee.DEPARTMENT
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP