上兩次課我們知道了,java語言中的兩種數據類型。這節課呢,我們對上兩次課做一個補充,也加深一下理論知識的學習。理論的東西是很有用的啊。這節課介紹基本類型變量和引用類型變量。
Java中數據類型分為兩大類,上次課已經講完了,是基本類型和對象類型。相應的,變量也就有兩種類型:基本類型和引用類型。基本類型自然不用說了,它的值就是一個數字,一個字符或一個布爾值。引用類型,可是引用類型呢?它是一個對象類型的啊,值是什么呢?它的值是指向內存空間的引用,就是地址,所指向的內存中保存著變量所表示的一個值或一組值。很好理解吧,因為一個對象,比如說一個人,不可能是個數字也不可能是個字符啊,所以要想找它的話只能找它的地址了。
羅唆:
我們在學習計算機的過程中,所謂的難的東西,就是以前沒有聽過的概念,和不常用的思想。像是這個引用類型的概念就是以前不常用的,基本類型當然好理解不講大家也知道。所以我們對于這樣陌生的概念我們只要多琢磨一下就會明白的。
我們廢話少說,接下來看看這兩種類型變量的不同處理吧。基本類型自然是簡單,聲明是自然系統就給它空間了。例如,
int baijq; baijq=250; //聲明變量baijq的同時,系統給baijq分配了空間。
引用類型就不是了,只給變量分配了引用空間,數據空間沒有分配,因為誰都不知道數據是什么啊,整數,字符?我們看一個錯誤的例子:
MyDate today;
today.day = 4; //發生錯誤,因為today對象的數據空間未分配。
那我們怎么給它賦值啊?引用類型變量在聲明后必須通過實例化開辟數據空間,才能對變量所指向的對象進行訪問。舉個例子:
MyDate today; //將變量分配一個保存引用的空間
today = new MyDate(); //這句話是2步,首先執行new MyDate(),給today變量開辟數據空間,然后再執行賦值操作。
小總結: 剛才說了一大堆,其實就是一件事。如果是引用類型的變量,必須先得new一個對象出來。不new哪來的對象啊,不new哪有數據空間啊?沒有數據空間怎么能訪問呢?這回明白了吧!
我們還有個問題沒有說,引用類型變量怎么賦值?這個就不是很難了。舉個例子:
MyDate a,b; //在內存開辟兩個引用空間
a = new MyDate(); //開辟MyDate對象的數據空間,并把該空間的首地址賦給a
b = a; //將a存儲空間中的地址寫到b的存儲空間中
如圖5-1
