一個粉色頭髮的女人走進了船艙。「不知道是不是所有的人類女性都有這樣的頭髮,」阿米哥忍不住想。
「嗨!我叫艾莉諾‧凱瑞。你可以叫我艾莉。我是銀河衝衝號的領航員。」
「嗨,艾莉,」阿米哥努力擠出回應。
「我接下來要解釋整個 Java 語言裡最有趣的部份:變量。」
「我準備好認真聽了。你說的變量是什麼啊?」
「變量是用來儲存資料的特殊實體,任何資料都可以。在 Java 中,所有的資料都存在變量裡。要類比的話,它最接近盒子的概念。」
「盒子?怎樣的盒子啊?」
「就是隨便一個舊盒子。假設你把數字 13 寫在一張紙上,然後放到盒子裡。我們就可以說這個盒子裡儲存著 13 這個值。」
「在 Java 裡面,每個變量都有三個重要的屬性:型別 (type)、名稱 (name)、還有值 (value)。」
「你可以再解釋清楚點嗎?」
「當然。我們會使用名稱,好區分不同的變量。就像是盒子上的標籤一樣。」
「變量的型別會決定哪種類型的值/資料可以存在裡面。就好像帽子就放在帽盒,鞋子就放在鞋盒,諸如此類。」
「值是儲存在變量裡的具體物件、資料或資訊。」
「關於型別,你可以多說一點嗎?」
「當然。Java 裡的每個物件都具有某種型別。例子包括整數、分數、文字、貓、房子、等等。
「一個變量也有型別。它只能拿來儲存跟自己同樣型別的值。」
「在現實生活中也能觀察到同樣的現象。不同種類的盒子會用來儲存不同的東西:」
「要建立(或宣告)一個變量,我們要使用型別的名稱:TypeName variableName
。」
「下面是一些範例:」
要宣告一個變量: 先寫型別,然後寫名稱。 |
描述 | |
---|---|---|
1 |
|
建立一個名稱為 a 的 int 變量。 |
2 |
|
建立一個名稱為 s 的 String 變量。 |
3 |
|
建立一個名稱為 c 的 double 變量。 |
「最常用的兩個型別是整數(用 int 關鍵字進行宣告)和文字(用 String 關鍵字進行宣告)。」
「那什麼是 double 呢?」
「Double 是分數或實數。」
「你剛說變量有三個屬性:型別、名稱、還有值。但我只看到兩個。所以,我想問的是,要怎麼指定值給變量呢?」
「讓我們回到盒子的類比。想像你拿出一張紙、寫下數字 42、然後放到盒子裡。現在盒子儲存著 42 這個值。」
「我懂。」
「我們用一個特別的操作(指定)來指定變量的值。指定操作把值從一個變量複製到另一個變量。它並不移動值。只是複製。就像硬碟上的檔案一樣。下面就是指定操作代碼的樣子:」
代碼 | 描述 | |
---|---|---|
1 |
|
指定值 3 給變量 i。 |
2 |
|
指定值 1 給變量 a。 指定值 2 給變量 b。 |
3 |
|
指定值 3 給變量 x。 在下一行,把 x 的值加 1,讓 x 等於 4 |
「為了完成指定操作,我們會使用等號 (=
)。」
「讓我再次強調:這不是在進行比較操作。我們是把等號右邊的值複製到左邊的變量。要進行比較操作,Java 使用的是雙等號 (==
)。」
「我知道要怎麼把貓放到變量裡。這幾乎就像個程式。」
「如何抓一隻貓:
1.拿出一個空盒子。
2.等待。」
「不對,阿米哥。你一次只能把一隻貓塞到一個盒子裡。呃,我的意思是你一次只能指定一個值給變量。」
「我懂了。你可以再給我更多建立變量的範例嗎?」
「OK。我再重複一次:要建立(或宣告)一個變量,你需要使用型別的名稱,例如 «TypeName variableName
»。」
代碼 | 解釋 | |
---|---|---|
1 |
|
建立一個名稱為 s 的 String 變量。這個變量可以儲存文字。 |
2 |
|
建立一個名稱為 x 的 int 變量。這個變量可以儲存整數。 |
3 |
|
建立名稱為 a、b、c 和 d 的 int 變量。這些變量可以儲存整數。 |
「喔!這樣我懂了!」
「千萬記住,你不能在同一個方法裡面建立兩個名稱相同的變量。」
「那不同的方法裡面呢?」
「可以,你能夠那麼做。那就像不同的房子裡有功能相同的盒子。」
「變量的名稱我可以愛怎麼取就怎麼取嗎?」
「幾乎是。但變量名稱不能包含空白、+ 號、- 號、諸如此類。最好是只用字母和數字來命名變量。」
「要記得 Java 是有大小寫敏感性的。int a
和 Int a
並不一樣。」
「對了,在 Java 裡面你可以在建立一個變量時,同時指定值給它。這能節省時間跟空間。」
簡潔代碼 | 等效但較長的代碼 | |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
「那個方法簡潔清楚多了。」
「我們辦事都是這樣的。」
「每個 Java 新手都需要熟悉的兩個型別是:int (整數)和 String(文字/字串)。」
「int 型別讓你把數字存到變量裡,並且對其進行運算:加、減、乘、除等等。」
代碼 | 解釋 | |
---|---|---|
1 |
|
x 等於 1 y 等於 2 z 等於 20+4+3,也就是 27 |
2 |
|
a 等於 5 b 等於 1 c 等於 4*6,也就是 24 |
3 |
|
a 等於 64 b 等於 8 c 等於 2 d 等於 6 |
「完全了解。程式總是這麼容易嗎?」
「說實話,沒錯。」
「太棒了!那,接下來呢?」
「String 型別讓你儲存多行文字,也被稱為『字串 (string)』。」
「在 Java 裡要指定一個字串時,你需要把文字放在引號裡。下面是一些範例:」
代碼 | 解釋 | |
---|---|---|
1 |
|
s 包含 "Amigo" 。 |
2 |
|
s 包含 "123" 。 |
3 |
|
s 包含 "123 + 456" 。 |
「完全了解。看起來不難嘛。」
「再分享個好玩的事情給你。」
「你可以用加號 (+
) 把字串接在一起。看看下面的範例。」
代碼 | 解釋 | |
---|---|---|
1 |
|
s 包含 "Amigo is the best" 。 |
2 |
|
s 包含一個空字串—就是一個裡面什麼符號也沒有的字串。 |
3 |
|
s 包含 "Amigo333" 。 |
「所以,你可以把字串和數字加在一起?」
「是的,但要記得,當你把字串和數字加在一起,得到的結果永遠是一個字串。」
「我有從你的範例推理出來。」
「如果你這麼聰明,那試試看在螢幕上顯示一個變量。」
「嗯。一個變量?在螢幕上?一點頭緒也沒有。」
「事實上很簡單。要把東西顯示在螢幕上,我們會使用 System.out.println()
命令,然後把任何我們想列印的東西作為引數傳進去。」
代碼 | 螢幕輸出 | |
---|---|---|
1 |
|
阿米哥 |
2 |
|
阿米哥 |
3 |
|
阿米哥 |
4 |
|
阿米哥 |
「啊哈!有了範例一切清楚多了。」
「太好了。這裡有三個練習要給你喔。」
GO TO FULL VERSION