標籤:java 變數 變數類型
在Java中,所有的變數必須先聲明才能使用它們。變數聲明的基本形式如下:
type identifier [ = value][, identifier [= value] ...] ;
type 是Java 的資料類型之一。該標識符是該變數的名稱。申報指定類型的多個變數,用逗號分隔的列表。
下面是各種類型的變數聲明的幾個例子。需要注意的是它們可能也包括初始化。
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中:
局部變數:
局部變數的方法,建構函式或塊中聲明。
建立局部變數的方法,建構函式或塊時進入,一旦退出方法,建構函式或塊中的變數將被銷毀。
存取修飾詞不能用於局部變數。
局部變數是可見的,只有內聲明的方法,建構函式或塊。
局部變數在堆疊順位內部實現。
在這裡對局部變數沒有預設值,因此局部變數應該聲明和初始值應在第一次使用前分配。
例如:
在這裡,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 initializedage = 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 : Ransikasalary :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
本文出自 “聽雨盼永恒” 部落格,請務必保留此出處http://yongguang.blog.51cto.com/9153118/1686870
java變數類型