學習Java的引用型別時的一點心得
一、對Java中的變數的心得
在一個java類中,首先根據變數修飾符的不同,可以把變數分為兩類——類變數(靜態變數)和例項變數(物件變數);其次是可以根據變數被宣告時所在位置的不同也可分為兩類——即成員變數和區域性變數。
那這個類中的變數我們都知道,這個東西有什麼好說的呢?
在這裡,我就寫寫我自己在學習時的一點理解,提高一點自己,也供少許能耐著心看點我這粗鄙之文的人一娛。
首先,成員變數——是在物件生存週期內都可使用的變數。那成員變數又分為靜態和例項(與靜態相對,我就叫它動態吧)變數。既然把成員變數分為了兩種不同形式的,那我想它們肯定就有它們的不同之處。想必大家都知道,靜態變數成員(要時刻用面向物件的思維來思考
然後是例項變數成員——我又管它叫做單個物件私有的變數成員或是動態變數成員。例項變數的特徵就是它只對它所在的物件負責,而不必管同一型別的其它物件。舉個不太文雅但卻很貼切的例子,若每個人的老婆都是一個Women類的物件,這時而且每個人是自己老婆的一個屬性成員的話,那麼你只用對自己的老婆負責,而不必去管他人的老婆,因為你本人是你自己老婆這個物件的私有的變數成員,不可與他人老婆共享。見笑於人,雅俗共賞了。
最後呢,我就要說說我理解的區域性變量了,在這裡把它們叫做宣告在方法中的變數或更貼切些,就叫作生命在方法中的變數,在區域性變數中,又分為了兩種——引數變數和區域性程式碼塊變數。這兩種變數的共同點是——它們都不可有修飾符來修飾它們,這裡的修飾符也分為了兩類,即一類是訪問許可權修飾符,按其修飾的成員或類的可見性的大小順序由小到大的排列為:private、(default)即什麼也不寫、protected、public;另一類就是成員狀態修飾符:static和final這兩個。
既然java語法規範中要求方法中的變數不可用修飾符來修飾它們,那這是為什麼呢?我的理解是與它們的作用域有關。它們只作用在宣告它們的程式碼塊中,當它們所在的程式碼塊執行完畢,它們也就消失在棧中,便不會有物件要操作它們,物件也操作不了它們,所以,它們不會被任何物件所直接訪問,便無需修飾符來修飾它們了。
說了方法變數——引數和方法內區域性變數的相同點,現在再來說一說它們的一點不同:那就是引數的作用域天然就是整個方法體中都可用;而方法內區域性變數的作用域只是在宣告它的那一個花括號內部可用,如:在for迴圈體中宣告的變數只能在for迴圈體中使用,出了for迴圈體便不再可用。即它們的作用域不同。
以上這些便是我對java類中變數的一點小小的心得,還望有心者可指出其中的不足之處。在此先略表謝意。