JAVA 基本類型變量和引用類型變量


一休:愚公,我又有困惑了。

愚公:說說看。

一休:我知道Java有8種基本類型,又發現對應有8個包裝類(Warper),它們起到的作用是相同的,都表示一種類型的數。於是我就隨手編了一句:

int i=Ineger(8);

結果編譯出錯了。

愚公:編程不能想當然。Java的面向對象的原則是數據和數據之上的操作要綁定在一起,這就是類,即引用數據類型。因此,類也是一種類型。Java本來可以不設置基本類型,只是為了提高操作效率,才設置了基本類型。基本類型和引用類型的最主要區別是:

基本類型的變量名是變量本身。

引用類型變量的名字是復雜數據的存儲地點。

這兩種類型的對應存儲方式如圖6所示。


 

一休:這個問題我明白一點的,例如基本類型表示簡單數據,引用類型表示復雜數據。

愚公:那你舉個例子看看。

一休:比如說,多少錢、多長、多高等這些簡單的數據就可以用基本類型表示。較復雜的事物,就用引用類型表示,如汽車、動物等,這些事物包含很多特性和行為,也就是屬性和操作。

愚公:可以這樣理解。關於對象,有很多概念需要理解清楚。例如,下面的聲明:

String s="Hello world!";

許多人都寫過這樣的語句,但是,我們到底聲明了什么呢?一休,你回答一下。

一休:聲明了一個String對象,內容是"Hello world!"。

愚公:這樣的回答還是比較模糊,准確的回答是這個語句創建了一個字符串對象,另外它聲明了一個指向對象的引用,名為s。它可以指向類型為String的任何對象,目前指向"Hello world!"這個String類型的對象。

一休:也就是說,我們聲明了一個只能指向String對象的引用變量s,並且將s指向了字符串對象"Hello world!"。

愚公:是的,如果在剛才的語句后面再補充一句代碼:

String string=s;

是不是又聲明了一個新的對象呢?

一休:是的,聲明了一個新的對象string。

愚公:不對,我們是聲明了另外一個指向String對象的引用,名為string,並沒有第二個對象產生,string還是指向原來的對象,也就是和s指向同一個對象。String類要弄清楚,因為這個類弄清楚了,許多類就好理解了。

一休:String類這么重要嗎?

愚公:是的,因為這個類使用的頻率很高,包含許多定制好的屬性和方法,我們可以直接使用,而且這個類是final類,我們不能繼承它,也不能繼承和利用多態性修改它的方法。
一休:那我今后一定好好研究它!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM