Java引用數據類型的聲明與創建


一 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,時間不早了,洗洗睡了。

 


免責聲明!

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



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