1. 程式人生 > >java 理解引用和物件

java 理解引用和物件

在java 中有這麼一句話,“萬物皆物件”,這句話Java程式語言之初的理念之一。我們就需要理解什麼是物件,還有什麼是引用。

物件定義

在《Java程式設計思想》中,是這麼定義物件的。“按照通俗的說法,每個物件都是某個類(class)的一個例項(instance),這裡的類就是型別的同義詞”。我們可以從這一句話中可以看出物件的本質,簡單的說,它就是類的例項。比如說,所有的人合起來就是人類,這裡人類就是類,而具體到某個人的時候,比如智慧這個人,她就是物件。這個就是人類例項。

物件引用

“每種程式語言都有自己的資料處理方式。有些時候,程式設計師必須注意將要處理的是什麼資料型別。你是直接操縱元素,還是用某種基於特殊語法的間接表示(例如c/c++裡面指標)來操縱物件,所有這些在Java 中得到了簡化,一切都被視為物件。因此,我們就可以採用一種統一的語法,儘管將一切都看作物件,但操縱的識別符號實際上是指向一個物件的引用(reference)”.這句話也是來自《java程式設計思想》,我們先上一個例子:

Person p = new Person("zhihui");

這一句話和下面的效果是一樣的

Person p;
p = new Person("zhihui");

在java中new是在堆建立物件的,這裡面的Person是一個引用,是指向一個可以指向Person類物件的引用。真正在建立物件是在new Person("zhihui")這一句話中的。然後補充一點,一個引用可以指向多個物件,例如:

Person person;
person = new Person("張三");
person = new Person("李四");

而一個物件也可以是被多個引用指向的。

Person person1 = new Person("張三");
Person person2 = person1;

這裡面person1和person2都指向了“張三”這個物件。