隨筆 - 20  文章 - 57  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          51CTO

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

                這篇文章我講述的是類與對象的關系,以及類與對象的創建過程以及在創建的時候內存的分配方式。
             
                首先,我們先了解一下什么是類,什么是對象?
                類——簡單的說就是對象的高度概括
                對象——對象是一個類的具體表現
                類是所有具有相同特征的對象抽象出來的總體概括,也就是說類是只是一個概念,這個概念包括所有對象的共同屬性和方法。對象是類的一個具體的實例,是實實在在存在的。
                也可以說,類包含了這個類所創建的所有對象的共同點。就像通常我們所說的人類。人類都有一定的屬性(例如,我們都有名字,都有手有腳……),這個屬性并不是人類特有的(比如,猩猩這個類,他們也都有手有腳……),但一定是全部的人所共有的——也就是說所有的人都有人類的屬性。當然,每一個類也都有一定的方法(例如,人類都可以思考問題,可以吃飯,可以睡覺),但不一定是人類所特有的(比如,猩猩也可以做一些簡單的思考,也可以吃飯睡覺等)。

                在我看來,我覺得 類 用一句話說就是:具有相同特征(屬性)和行為(方法)的任何事物都可以看做一個類。
                                對象 就是:某個類的具體實例,一個實實在在的事物,擁有類的特征和方法。

                                                                       
                ——這里先不考慮一些特殊情況。
                      
                現在,我們來說說在Java編程中類的創建以及在創建過程中內存的分配方式:
                在Java中創建類的關鍵字是 class ,類名總收標識符的命令方式,但類名的第一個字母應該大寫,這只是業內人士的一種規則,好處嘛當然也是大大的……
                下面我們以一個例子來說明:
                    //創建一個Person類
                    class Person
                   {
                      //定義類的name和age屬性
                      public String name;
                      public int age;
                     
                      //定義一個類的簡單的方法
                      public void say(){
                        System.out.println("I am SKY!");
                      }
            
                   }
                   這個類是創建完了,但這個過程內存是怎么分配的我還不清楚,其實我覺得這不是我們現在要考慮的問題,最重要的是下一步類的聲明和實例化過程中內存是怎么分配的。

                    //我們再定義一個Person測試類PersonTest
                    public class PersonTest{
                    public static void main(String[] args){
                    //聲明一個person1對象
                    Person person1 = null;//——>這個過程只是在棧內存開辟一塊空間,存放person1的句柄
                    //對象的實例化
                    person1 = new Person();//——>這個過程是在堆內存開辟了一塊空間,來存放person1的屬性和方法(這塊內存的首地址會被存放在person1在棧的內存中)
                    //其實在這我也有部分不明白:就是這時的person1句柄是不是就是person1在堆內存的地址?
                    //調用say方法
                    person1.say();
           
                      }
                    }
                    運行這個程序,會輸出:
                                           I am SKY!





              可能自己的表達能力有限,說的不夠清楚,如有疑問,請留下來,我們一起探討。
               






          posted on 2010-10-14 00:03 tovep 閱讀(139) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主頁
          主站蜘蛛池模板: 申扎县| 大理市| 济阳县| 嘉禾县| 大冶市| 安达市| 合江县| 宣化县| 泰安市| 嘉荫县| 江西省| 若尔盖县| 黔南| 邯郸市| 虎林市| 吉林市| 灌南县| 万安县| 全南县| 葫芦岛市| 芜湖市| 望江县| 河北省| 贵定县| 修水县| 红安县| 丰台区| 湘潭市| 太原市| 巴中市| 河南省| 昌都县| 芜湖县| 资阳市| 龙胜| 商都县| 莲花县| 孝感市| 西畴县| 永仁县| 平罗县|