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

更新於:2020-02-25

83 次檢視

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告

© . All rights reserved.