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)!