明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Java咖啡館——Java語(yǔ)言基礎(chǔ)(2)

[摘要]可惜宋朝沒有Java,否則英姑一定不會(huì)被黃蓉難倒! 〈蜷_Eclipse,新建一個(gè)Java項(xiàng)目,名稱叫做“黃蓉的題目”。然后新建一個(gè)Java類,名字叫做JavaCalc,記得在“public sta...

    

  可惜宋朝沒有Java,否則英姑一定不會(huì)被黃蓉難倒。

  打開Eclipse,新建一個(gè)Java項(xiàng)目,名稱叫做“黃蓉的題目”。然后新建一個(gè)Java類,名字叫做JavaCalc,記得在“public static void main(String[] args)”選項(xiàng)前打上勾。按照?qǐng)D1所示輸入Java程序,共五行代碼(圖1)。

Java咖啡館——Java語(yǔ)言基礎(chǔ)(2)

  運(yùn)行程序,你就會(huì)得到如圖2所示結(jié)果(圖2)。

Java咖啡館——Java語(yǔ)言基礎(chǔ)(2)

  通過驗(yàn)算,23果然就是滿足題意的一個(gè)解。程序編寫的具體操作步驟不再贅述了,如果你還不熟悉,趕快翻翻前幾期的《Java咖啡館》好好復(fù)習(xí)一下吧!

  短短五行程序就解決號(hào)稱神算子英姑撓破頭皮都沒想出來的問題,是不是很神奇呢?其實(shí),這些代碼包含了許多Java語(yǔ)言特性,比如變量、操作符、流程控制語(yǔ)句;蛟S這些代碼對(duì)你而言還有些神秘,結(jié)合這道題,再看看下面的介紹,馬上就會(huì)領(lǐng)悟到其中奧妙。

  1.變量(variable)

  變量是用標(biāo)識(shí)符表示的(擁有名字)用來存儲(chǔ)值(擁有內(nèi)涵)的物體。代碼:

int X;

  就是一個(gè)變量聲明語(yǔ)句,宣告X是一個(gè)int類型的變量。

  為了聲明一個(gè)變量,你必須明確提供這個(gè)變量的類型和名稱。

  變量的類型是用來確定變量可以存儲(chǔ)的數(shù)據(jù)類型和可以對(duì)該變量進(jìn)行的操作。比如上面代碼中,X是int類型,即一個(gè)整數(shù),只能夠把整數(shù)賦給這個(gè)變量,比如X=0。你也只能對(duì)X進(jìn)行算術(shù)運(yùn)算,比如加、減、乘、除以及取余數(shù)等。

  Java的變量分為“原始類型(primitive type)”及“引用類型(reference type)”兩大類。其中“原始類型”的變量保存的是擁有特定大小和類型的簡(jiǎn)單數(shù)據(jù),比如一個(gè)整數(shù)、一個(gè)字符、一個(gè)布爾值(以邏輯學(xué)家Geogre Boole命名的變量類型,只有兩種值??真或假,屬于經(jīng)典的二值邏輯)等。與“原始類型”不同,“引用類型”是一個(gè)參照的概念,指向內(nèi)存中某個(gè)具體對(duì)象(的地址)(見圖3)(圖3+4  左側(cè)為“原始類型”,右側(cè)為“引用類型”,通過對(duì)比,我們可以看到它們的不同)。

Java咖啡館——Java語(yǔ)言基礎(chǔ)(2)


  我們現(xiàn)在接觸“原始類型”比較多,足夠完成復(fù)雜任務(wù)!耙妙愋汀痹诿嫦?qū)ο蟾拍钪衅鹆酥匾饔谩?/p>

  為什么Java語(yǔ)言中要這么分兩種變量類型呢?這是出于對(duì)執(zhí)行效率的考慮!耙妙愋汀狈⻊(wù)于對(duì)象,是面向?qū)ο蟮幕A(chǔ)設(shè)施,用面向?qū)ο蟮姆椒?gòu)架和設(shè)計(jì)系統(tǒng)很漂亮,但是“引用類型”的執(zhí)行效率遠(yuǎn)不及“原始類型”。從而,Java實(shí)際上是“原始類型”和“引用類型”結(jié)合使用的計(jì)算機(jī)語(yǔ)言,從這點(diǎn)上講,Java并非純粹的面向?qū)ο笳Z(yǔ)言。當(dāng)然,Java提供了與int類型(原始類型)遙相呼應(yīng)的Java類??Integer類型(引用類型),它們可以互相轉(zhuǎn)換,新版本的Java還提供了自動(dòng)轉(zhuǎn)換的功能,這是后話了,暫且不提。

  Java的原始類型列舉如下:

類型
描述
大小
byte8-bit長(zhǎng)的整數(shù)8-bit
short短整數(shù)16-bit
int整數(shù)32-bit
long長(zhǎng)整數(shù)64-bit
float單精度浮點(diǎn)數(shù)32-bit IEEE 754
double雙精度浮點(diǎn)數(shù)64-bit IEEE 754
char單個(gè)字符16-bit Unicode字符
boolean布爾值true或false

  值得一提的是,Java語(yǔ)言明確規(guī)定了變量類型的大小,為跨平臺(tái)鋪平道路。

  變量名就是變量的名字,你是通過變量名訪問實(shí)際變量的,所以變量名有嚴(yán)格的規(guī)定。在Java中,變量名必須是:

  ★標(biāo)識(shí)符,即符號(hào)開頭的字符串。
  ★不能是關(guān)鍵字、布爾值(true或者false)以及保留字null。
  ★在作用域內(nèi)惟一,即一個(gè)作用域內(nèi)變量名必須惟一。

  看起來規(guī)矩很多,其實(shí)也很合理。比如給小孩起名字,總是以百家姓作為姓氏,如果名字叫做“¥皓”,別人一定認(rèn)為是開玩笑或者是奇怪的網(wǎng)名。當(dāng)然,小孩的名字也不能叫做“總統(tǒng)”、“皇帝”之類的關(guān)鍵詞,以免引起誤會(huì)。說到作用域惟一,也很好理解:中國(guó)叫做吳宗憲的人太多了,學(xué)校里(一個(gè)作用域)會(huì)用學(xué)號(hào)惟一標(biāo)識(shí)你的身份,而不會(huì)逼迫你改名為吳宗憲2004等。

  雖然合法的都能夠成為變量名,但給變量起一個(gè)有意義的名字,是一個(gè)良好的素質(zhì),免得閱讀代碼時(shí),別人看不懂,自己也看不懂。舉個(gè)例子,給變量起變量名正如起暗號(hào),最好不要起“打死我也不說”這樣的暗號(hào),不然,有你好受的……

  最后說說作用域。作用域是指變量在程序內(nèi)部能夠被訪問到的區(qū)域。比如我們的程序中,變量X在整個(gè)main方法中都能夠被訪問到,非常直觀。你可以借助Eclipse的力量體驗(yàn)一下這個(gè)概念:如果作用域不對(duì),Eclipse會(huì)毫不猶豫地警告你。

  定義了變量就能夠通過“=”給它賦值,正如程序中所做的。