一 java語言中變量可分為兩種:1.成員變量2.局部變量。
二 數據類型也可分為兩種:1值類型,即基本類型,共四類八種,分別為boolean、char、byte、short、int、long、float、double;2引用類型,可類比為C++中的指針,不過java中沒有指針這一概念,也不允許程序猿顯示的操作堆棧等內存空間,一定程度上避免了C++中對指針操作不當造成的內存泄露等一系列問題。
三 學習JAVA這門面向對象的語言,實質就是不斷地創建類,並把類實例化為對象並調用方法。
四 類的聲明與創建對象就是針對數據類型中提到的引用類型而言的,下面主要介紹類的對象的聲明與創建,結合到自己對堆棧知識的理解,可能有表述不當或者錯誤的地方,如若讀者看到還望一定幫忙指出,在此先行謝過。
在java中要使用類的對象一般要經過兩個步驟,即對象的聲明與創建。下面創建一個Person類幫助說明問題。
1 public class Person{ 2 //成員變量 3 String name; 4 int age; 5 String sex; 6 7 8 //方法 9 public void speak() { 10 System.out.println("跟着我有肉吃"); 11 } 12 13 public void run() { 14 System.out.println("人在跑。。。。"); 15 } 16 } 17 18 19 public class Test { 20 21 /** 22 * @param args 23 */ 24 public static void main(String[] args) { 25 // TODO Auto-generated method stub 26 Person p1 = new Person(); 27 Person p2 = new Person(); 28 29 p1.name = "Jim"; 30 p2.name = "Kite"; 31 32 p1 = p2; 33 p1.name = "Sheldon"; 34 35 int a = 10; 36 int b = 5; 37 a = b; 38 a = 3; 39 40 System.out.println(p1.name); 41 System.out.println(p2.name); 42 System.out.println(a); 43 System.out.println(b); 44 45 46 } 47 48 }
首先,Person p1=new Person();語句實際上同時完成了對象的聲明與創建,可以分開這樣寫: 1 Person p1; 2 p1=new Person(); 聲明對象只在棧中聲明指針類型的變量,不在內存中存儲具體的數值,而只存放另一塊堆中內存的地址。創建對象在java中一般用new關鍵字, p1=new Person();這行代碼一共做了兩件事情:第一件是在堆中分配一塊存放學生具體數值的內存,第二件是把這個內存的首地址賦給上面聲明的指針變量。下面我們就可以通過對象名.屬性名訪問具體屬性了。對象必須創建后才能使用,如果只聲明不創建,那么調用對象屬性和方法時將會報空指針異常(NullPointerException)。
五 結合上面的代碼再說明一個問題。上面代碼執行后分別輸出:Sheldon Sheldon 3 5 。下面進行思路分析:
1先分析基本數據類型。首先是賦值操作,10賦值給a,5賦值給b,此時b的字面值為5,a的字面值為10。然后b(字面值=5)賦值給a,此步賦值操作后a=5,b=5。最后,3賦值給a,此時a=3,b=5。這是基本數據類型的連續賦值,很好理解。
2接下來分析引用數據類型的賦值操作。畫兩個圖就完全可以解釋清楚了。

同樣的數組的聲明與創建是一樣的道理。

OK,時間不早了,洗洗睡了。
