Java咖啡館——Java語言基礎(2)
發表時間:2023-08-09 來源:明輝站整理相關軟件相關文章人氣:
[摘要]可惜宋朝沒有Java,否則英姑一定不會被黃蓉難倒。 打開Eclipse,新建一個Java項目,名稱叫做“黃蓉的題目”。然后新建一個Java類,名字叫做JavaCalc,記得在“public sta...
可惜宋朝沒有Java,否則英姑一定不會被黃蓉難倒。
打開Eclipse,新建一個Java項目,名稱叫做“黃蓉的題目”。然后新建一個Java類,名字叫做JavaCalc,記得在“public static void main(String[] args)”選項前打上勾。按照圖1所示輸入Java程序,共五行代碼(圖1)。

運行程序,你就會得到如圖2所示結果(圖2)。

通過驗算,23果然就是滿足題意的一個解。程序編寫的具體操作步驟不再贅述了,如果你還不熟悉,趕快翻翻前幾期的《Java咖啡館》好好復習一下吧!
短短五行程序就解決號稱神算子英姑撓破頭皮都沒想出來的問題,是不是很神奇呢?其實,這些代碼包含了許多Java語言特性,比如變量、操作符、流程控制語句。或許這些代碼對你而言還有些神秘,結合這道題,再看看下面的介紹,馬上就會領悟到其中奧妙。
1.變量(variable)
變量是用標識符表示的(擁有名字)用來存儲值(擁有內涵)的物體。代碼:
int X;
就是一個變量聲明語句,宣告X是一個int類型的變量。
為了聲明一個變量,你必須明確提供這個變量的類型和名稱。
變量的類型是用來確定變量可以存儲的數據類型和可以對該變量進行的操作。比如上面代碼中,X是int類型,即一個整數,只能夠把整數賦給這個變量,比如X=0。你也只能對X進行算術運算,比如加、減、乘、除以及取余數等。
Java的變量分為“原始類型(primitive type)”及“引用類型(reference type)”兩大類。其中“原始類型”的變量保存的是擁有特定大小和類型的簡單數據,比如一個整數、一個字符、一個布爾值(以邏輯學家Geogre Boole命名的變量類型,只有兩種值??真或假,屬于經典的二值邏輯)等。與“原始類型”不同,“引用類型”是一個參照的概念,指向內存中某個具體對象(的地址)(見圖3)(圖3+4 左側為“原始類型”,右側為“引用類型”,通過對比,我們可以看到它們的不同)。

我們現在接觸“原始類型”比較多,足夠完成復雜任務。“引用類型”在面向對象概念中起了重要作用。
為什么Java語言中要這么分兩種變量類型呢?這是出于對執行效率的考慮。“引用類型”服務于對象,是面向對象的基礎設施,用面向對象的方法構架和設計系統很漂亮,但是“引用類型”的執行效率遠不及“原始類型”。從而,Java實際上是“原始類型”和“引用類型”結合使用的計算機語言,從這點上講,Java并非純粹的面向對象語言。當然,Java提供了與int類型(原始類型)遙相呼應的Java類??Integer類型(引用類型),它們可以互相轉換,新版本的Java還提供了自動轉換的功能,這是后話了,暫且不提。
Java的原始類型列舉如下:
類型 | 描述 | 大小 |
byte | 8-bit長的整數 | 8-bit |
short | 短整數 | 16-bit |
int | 整數 | 32-bit |
long | 長整數 | 64-bit |
float | 單精度浮點數 | 32-bit IEEE 754 |
double | 雙精度浮點數 | 64-bit IEEE 754 |
char | 單個字符 | 16-bit Unicode字符 |
boolean | 布爾值 | true或false |
值得一提的是,Java語言明確規定了變量類型的大小,為跨平臺鋪平道路。
變量名就是變量的名字,你是通過變量名訪問實際變量的,所以變量名有嚴格的規定。在Java中,變量名必須是:
★標識符,即符號開頭的字符串。
★不能是關鍵字、布爾值(true或者false)以及保留字null。
★在作用域內惟一,即一個作用域內變量名必須惟一。
看起來規矩很多,其實也很合理。比如給小孩起名字,總是以百家姓作為姓氏,如果名字叫做“¥皓”,別人一定認為是開玩笑或者是奇怪的網名。當然,小孩的名字也不能叫做“總統”、“皇帝”之類的關鍵詞,以免引起誤會。說到作用域惟一,也很好理解:中國叫做吳宗憲的人太多了,學校里(一個作用域)會用學號惟一標識你的身份,而不會逼迫你改名為吳宗憲2004等。
雖然合法的都能夠成為變量名,但給變量起一個有意義的名字,是一個良好的素質,免得閱讀代碼時,別人看不懂,自己也看不懂。舉個例子,給變量起變量名正如起暗號,最好不要起“打死我也不說”這樣的暗號,不然,有你好受的……
最后說說作用域。作用域是指變量在程序內部能夠被訪問到的區域。比如我們的程序中,變量X在整個main方法中都能夠被訪問到,非常直觀。你可以借助Eclipse的力量體驗一下這個概念:如果作用域不對,Eclipse會毫不猶豫地警告你。
定義了變量就能夠通過“=”給它賦值,正如程序中所做的。