這篇文章我講述的是類與對象的關(guān)系,以及類與對象的創(chuàng)建過程以及在創(chuàng)建的時候內(nèi)存的分配方式。
首先,我們先了解一下什么是類,什么是對象?
類——簡單的說就是
對象的高度概括。
對象——對象是一個
類的具體表現(xiàn)。
類是所有具有相同特征的對象
抽象出來的總體
概括,也就是說類是只是一個概念,這個概念包括所有對象的共同屬性和方法。對象是類的一個具體的實(shí)例,是
實(shí)實(shí)在在存在的。
也可以說,類包含了這個類所創(chuàng)建的所有對象的共同點(diǎn)。就像通常我們所說的人類。人類都有一定的屬性(例如,我們都有名字,都有手有腳……),這個屬性并不是人類特有的(比如,猩猩這個類,他們也都有手有腳……),但一定是全部的人所共有的——也就是說所有的人都有人類的屬性。當(dāng)然,每一個類也都有一定的方法(例如,人類都可以思考問題,可以吃飯,可以睡覺),但不一定是人類所特有的(比如,猩猩也可以做一些簡單的思考,也可以吃飯睡覺等)。
在我看來,我覺得 類 用一句話說就是:具有相同特征(屬性)和行為(方法)的任何事物都可以看做一個類。
對象 就是:某個類的具體實(shí)例,一個實(shí)實(shí)在在的事物,擁有類的特征和方法。
——這里先不考慮一些特殊情況。
現(xiàn)在,我們來說說在Java編程中類的創(chuàng)建以及在創(chuàng)建過程中內(nèi)存的分配方式:
在Java中創(chuàng)建類的關(guān)鍵字是
class ,類名總收標(biāo)識符的命令方式,但類名的第一個字母應(yīng)該大寫,這只是業(yè)內(nèi)人士的一種規(guī)則,好處嘛當(dāng)然也是大大的……
下面我們以一個例子來說明:
//創(chuàng)建一個Person類
class Person
{
//定義類的name和age屬性
public String name;
public int age;
//定義一個類的簡單的方法
public void say(){
System.out.println("I am SKY!");
}
}
這個類是創(chuàng)建完了,但這個過程內(nèi)存是怎么分配的我還不清楚,其實(shí)我覺得這不是我們現(xiàn)在要考慮的問題,最重要的是下一步類的聲明和實(shí)例化過程中內(nèi)存是怎么分配的。
//我們再定義一個Person測試類PersonTest
public class PersonTest{
public static void main(String[] args){
//聲明一個person1對象
Person person1 = null;//——>這個過程只是在棧內(nèi)存開辟一塊空間,存放person1的句柄
//對象的實(shí)例化
person1 = new Person();//——>這個過程是在堆內(nèi)存開辟了一塊空間,來存放person1的屬性和方法(這塊內(nèi)存的首地址會被存放在person1在棧的內(nèi)存中)
//
其實(shí)在這我也有部分不明白:就是這時的person1句柄是不是就是person1在堆內(nèi)存的地址?
//調(diào)用say方法
person1.say();
}
}
運(yùn)行這個程序,會輸出:
I am SKY!
可能自己的表達(dá)能力有限,說的不夠清楚,如有疑問,請留下來,我們一起探討。
posted on 2010-10-14 00:03
tovep 閱讀(138)
評論(0) 編輯 收藏