Java 語法介紹(三):變數(轉)

BSDLite發表於2007-08-15
Java 語法介紹(三):變數(轉)[@more@]為了在Java中儲存一個資料,必須將它容納在一個變數之中。而資料型別決定了一個變數可以賦給什麼值以及對變數進行什麼樣的操作。定義一個變數的兩個基本要素是:型別和識別符號,通常你可以用如下語法去說明變數:

  type identifer[,identifer];   該語句告訴編譯器用“type”的型別和以“identifer”為名字建立一個變數,這裡的分號將告訴編譯器這是一個說明語句的結束;方格中的逗號和識別符號表示你可以把幾個型別相同的變數放在同一語句進行說明,變數名中間用逗號分隔。

  在你建立了一個變數以後,你可以給它賦值,或者用運算子對它進行一些運算。型別將決定變數所代表的不同種類的資料,在Java語言中有兩種變數。最基本的是簡單型別變數,他們不建立在任何其他型別上,整數、浮點、布林和字元型別都是這型別(注意和其他程式語言不太一樣一點是,字串在這裡是作為一個類的例項出現);另外Java可以定義構造另一種變數型別:類,這些型別建立在簡單型別之上,它包括數值、變數和方法,是一種資料與程式碼相結合的複合結構。

1: 整型變數的說明

  整型變數按所佔記憶體大小的不同可分為四種不同的型別,最短的整型是byte,它只有八位長,然後是短整型short,它有16位,int型別有32位,長整型long是64位,下面是這些整型變數的說明示例。

    byte bCount; (記憶體中佔用: 8 Bits)
    short sCount; (記憶體中佔用:16 Bits)
    int nCount; (記憶體中佔用:32 Bits)
    long LCount; (記憶體中佔用:64 Bits)
    int nx,ny,nz; (記憶體中佔用:32 Bits)

2:浮點變數的說明

  浮點型別可用關鍵字float或double來說明,float型的浮點變數用來表示一個32位的單精度浮點數,而double型的浮點變數用來表示一個64位的雙精度浮點數。double型所表示的浮點數比float型更精確

   float areas;
    double weihgt;
3:字元變數說明

  Java使用16位的Unicode字符集。因此Java字元是一個16位的無符號整數,字元變數用來存放單個字元。例如:

    char a;
    a=´c´;
4:布林變數說明

  布林型有真和假兩個邏輯值,另外,邏輯運算子也將返回布林型別的值,例如:

  boolean onClick;
  mouseOn=true;
  布林型是一個獨立的型別,Java中的布林型別不代表0和1兩個整數,不能轉換成數字。

5:變數的使用範圍

  當你說明了一個變數後,它將被引入到一個範圍當中,也就是說,該名字只能在程式的特定範圍內使用。變數的使用範圍是從它被說明的地方到它所在那個塊的結束處,塊是由兩個大括號所定義的,例如:

class Example
public static void main(String args[])

int i;
......

public void function()
char c;
......

  整型變數i在方法main中說明,因為main的塊不包括function塊,所以任何在function塊中對i的引用都是錯誤的。對字元型變數c也同樣如此。

  在某一個特定情形中,變數能被別的變數所隱藏,如:在一個塊中說明一個變數,而在這個塊中建立一個新塊並且在其中定義相同名字的變數,這樣在第二個塊中,程式對該變數的使用均是指第二次定義的那個變數。這樣我們說,第一個變數被隱藏了,作者並不建議採用這種定義變數的方法。變數隱藏的示例如下:

class Example

public static void main(String args[])

int i; // * * *
boolean try=true;
while(try)

int i; //以下對變數i的引用均指這裡定義的i
......
//以下對變數i的引用均指* * *處定義的i
......

  當你定義一個變數時,首先必須明確它的活動範圍,並根據它的實際功能來命名,此外還應儘量使用詳細的註釋,這些辦法可以使你能夠清晰地區分變數,變數被隱藏的問題也會大大減少。

6:型別轉換

  系統方法System.in.read返回一個整型數值,但你卻常常想要把它當作一個字元來使用。現在的問題是,當有一個整數而你需要把變成一個字元時應當去做些什麼呢?你需要去做一個型別轉換為一個字元。從一種型別轉換到另一種型別可以使用下面的語句:

    int a;
    char b;
    a=(int)b;
  加括號的int告訴編譯器你想把字元變成整型並把它放在a裡,另一方面,如果你想做相反的轉換,你可以使用:

    b=(char)a;
  記住整型和字元型變數位長不同是非常重要的,整型是32位長,字元型是16長,所以當你從整型轉換到字元型可能會丟失資訊。同樣,當你把64 位的長整型數轉換為整型時,由於長整型可能有比32位更多的資訊,你也很可能會丟失資訊。即使兩個量具有相同的位數,比如整和浮點型(都是32位),你在轉換小數時也會丟失資訊,Java不允許自動型別轉換,當你進行型別轉換要注意使目標型別能夠容納原型別的所有資訊,不會丟失資訊的型別轉換有:

原始型別     目標型別

byte -〉short -〉char -〉int -〉long -〉float -〉double
short -〉int -〉long -〉float -〉double
char -〉int -〉long -〉float -〉double
int -〉long -〉float -〉double
long -〉float -〉double
float -〉double
  需要說明的是,當你執行一個這裡並未列出的型別轉換時可能並不總會丟失資訊,不過進行這樣一個理論上並不安全的轉換是很危險的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-958035/,如需轉載,請註明出處,否則將追究法律責任。

相關文章