首頁 > Java > java教程 > 主體

【java教學】Java變數類型

黄舟
發布: 2016-12-26 11:26:32
原創
1385 人瀏覽過

Java變數類型

在Java語言中,所有的變數在使用前必須宣告。宣告變數的基本格式如下:

type identifier [ = value][, identifier [= value] ...] ;
登入後複製

格式說明:type為Java資料型別。 identifier是變數名。可以使用逗號隔開來聲明多個同類型變數。

以下列出了一些變數的宣告實例。注意有些包含了初始化過程。

int a, b, c;         // 声明三个int型整数:a、 b、c。
int d = 3, e, f = 5; // d声明三个整数并赋予初值。
byte z = 22;         // 声明并初始化z。
double pi = 3.14159; // 声明了pi。
char x = 'x';        // 变量x的值是字符'x'。
登入後複製

Java語言支援的變數類型有:

局部變數

成員變數

類別變數

Java局部變數

局部變數宣告在方法、結構方法或語句區塊中;構造方法、或語句區塊被執行的時候創建,當它們執行完成後,變數將會被銷毀;

存取修飾符不能用於局部變數;

局部變數只在宣告它的方法、建構方法或語句塊中可見;

局部變數是在堆疊上分配的。

局部變數沒有預設值,所以局部變數量被宣告後,必須經過初始化,才可以使用。

實例1

在下列實例中age是局部變數。定義在pubAge()方法中,它的作用域就限制在這個方法中。

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
登入後複製

實例2

在下面的例子中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
登入後複製

實例變數

實例變數宣告在一個類別中,但在方法、建構方法和語句區塊之外;

當一個物件被實例化之後,每個實例變數的值就跟著確定;

實例變數在物件創建的時候創建,在物件被銷毀的時候銷毀;

實例變數的值應該至少被一個方法、建構方法或語句塊引用,使得外部能夠通過這些方式取得實例變數資訊;

實例變數可以宣告在使用前或使用後;

存取修飾符可以修飾實例變數;

實例變數對於類別中的方法、建構方法或語句區塊是可見的。一般情況下應該把實例變數設為私有。透過使用存取修飾符可以使實例變數對子類別可見;

實例變數具有預設值。數值型變數的預設值是0,布林型變數的預設值是false,引用型別變數的預設值是null。變數的值可以在宣告時指定,也可以在建構方法中指定;

實例變數可以直接透過變數名稱存取。但在靜態方法以及其他類別中,就應該使用完全限定名:ObejectReference.VariableName。

實例:

import java.io.*;
public class Employee{
   // 这个成员变量对子类可见
   public String name;
   // 私有变量,仅在该类可见
   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("Ransika");
      empOne.setSalary(1000);
      empOne.printEmp();
   }
}
登入後複製

以上實例編譯運行結果如下:

name  : Ransika
salary :1000.0
登入後複製

類別變數(靜態變數)

類別變數也稱為靜態變量,在類別中以static關鍵字聲明,但必須在方法中建構方法和語句塊之外。

無論一個類別創建了多少個對象,類別只擁有類別變數的一份拷貝。

靜態變數除了被宣告為常數外很少使用。常數是指宣告為publc/private,final和static類型的變數。常量初始化後不可改變。

靜態變數儲存在靜態儲存區。經常被聲明為常數,很少單獨使用static聲明變數。

靜態變數在程式開始時創建,在程式結束時銷毀。

與實例變數具有相似的可見性。但為了對類別的使用者可見,大多數靜態變數宣告為public型別。

預設值和實例變數相似。數值型變數預設值是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 = "Development ";
   public static void main(String args[]){
      salary = 1000;
      System.out.println(DEPARTMENT+"average salary:"+salary);
   }
}
登入後複製

以上实例编译运行结果如下:

Development average salary:1000
登入後複製

注意:如果其他类想要访问该变量,可以这样访问:Employee.DEPARTMENT。

本章节中我们学习了Java的变量类型,下一章节中我们将介绍Java修饰符的使用。

 以上就是【java教程】Java变量类型的内容,更多相关内容请关注PHP中文网(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板