1. 程式人生 > 其它 >java中對例項的理解

java中對例項的理解

new 一個物件是例項嗎?
對,是例項,你說的沒錯。可以把這個new出來的物件叫做例項,說白了就是這個new出來的“東西”,叫它物件也可以,叫它例項也可以,物件和例項在這個角度上來講是等價的。

請看程式碼:
Java中使用 new關鍵字 加上 構造方法,來建立一個物件,下面是一個名為Cat的類,
public class Cat {
public Cat() {System.out.println("這是構造方法");}
}


使用new + 構造方法 來建立一個物件,那麼也就是
Cat c = new Cat();


前半部分,Cat c 的意思是,在記憶體中分配一個變數,名字叫c,這個變數是Cat型別的,它的值是什麼?
一會兒在說;
後半部分,new Cat(); 這就是new關鍵字和構造方法來建立一個物件,Cat()是構造方法的名字沒錯吧?想造出一個物件來,就這麼寫,語法規定的,沒有為什麼;
new Cat(); 說明 new這個Cat類的一個物件,程式執行的時候,會呼叫構造方法Cat(),等這個構造方法執行完了,這個Cat型別的物件也就造出來了,真正的出現在記憶體當中了;
使用new關鍵字造出來的物件,被分配在記憶體的堆區(heap),而且等這個物件真正出來之後,還會做一件重要的事情:
我們這個物件是被分配在記憶體中的,那麼記憶體地方大了,這個物件在哪裡呢?怎麼找到它呢?new關鍵字創建出一個物件之後,會把這個物件在記憶體中的地址返回,通過這個地址就可以找到這個物件,那麼我們上面的寫法,
Cat c = new Cat();
意思就是說,把這個物件在記憶體中的地址 賦值 給變數c,這就是Java中引用概念,c就叫做引用,或者叫引用變數,或者直接叫變數,沒問題,都是它;
c的值就是一個記憶體地址,或者叫引用地址,通過這個地址,就可以準確的找到我們剛才創建出來的物件,以後我們要使用這個物件做一些事情,呼叫此物件的方法什麼的,都用過這個引用,ok?
----
總結c是引用,不是物件!我們new出來的這個東西,真正在記憶體中的這個東西叫做物件,叫做“例項”。