java變量類型

在Java中,全部的變量必須先聲明才能使用它們。變量聲明的基本形式以下:java

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

 type 是Java 的數據類型之一。該標識符是該變量的名稱。申報指定類型的多個變量,用逗號分隔的列表。app

下面是各類類型的變量聲明的幾個例子。須要注意的是它們可能也包括初始化。yii

int a, b, c;         // declares three ints, a, b, and c.int d = 3, e, f = 5; // declares three more ints, initializing
                     // d and f.byte z = 22;         // initializes z.double pi = 3.14159; // declares an approximation of pi.char x = 'x';        // the variable x has the value 'x'.

本章將解釋各類變量類型Java語言提供。有三種類型的變量在Java中:ide

  • 局部變量函數

  • 實例變量this

  • 類/靜態變量google

局部變量:

  • 局部變量的方法,構造函數或塊中聲明。url

  • 建立局部變量的方法,構造函數或塊時進入,一旦退出方法,構造函數或塊中的變量將被銷燬。spa

  • 訪問修飾符不能用於局部變量。orm

  • 局部變量是可見的,只有內聲明的方法,構造函數或塊。

  • 局部變量在堆棧級別內部實現。

  • 在這裏對局部變量沒有默認值,所以局部變量應該聲明和初始值應在第一次使用前分配。

例如:

在這裏,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關鍵字聲明的,但在方法外面,構造函數或塊。

  • 每一個類變量只有一個副本,無論有多少對象從它被建立。

  • 靜態變量不多使用不是被聲明爲常量等。常量是被聲明爲公共/私營,最終和靜態變量。常量變量歷來沒有從他們的初始值改變。

  • 靜態變量被存儲在靜態存儲器中。這是罕見的使用靜態變量之外聲明爲final,用做公共或私有常數。

  • 在程序啓動時的靜態變量被建立,在程序中止銷燬。

  • 能見度相似於實例變量。然而,大多數靜態變量聲明爲 public,由於它們必須可用於類的使用者。

  • 默認值是相同的實例變量。對於數字,默認值是0;爲布爾值,它是假的,和對象引用,它爲null。值能夠在聲明或構造函數中分配。另外值能夠在特殊的靜態初始化塊進行分配。

  • 靜態變量能夠經過調用與類名來訪問。 ClassName.VariableName.

  • 當定義的變量爲 public static 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

相關文章
相關標籤/搜索