<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    數(shù)據(jù)加載中……
    java筆記3

    對(duì)象的特征:狀態(tài)(state)和行為(behabior)
    人          身高,體重     吃飯,睡覺(jué)


    現(xiàn)實(shí)世界對(duì)象的狀態(tài)保存在軟件對(duì)象的變量中,先是世界對(duì)象的行為通過(guò)軟件對(duì)象的方法(函數(shù))來(lái)實(shí)現(xiàn)、。

    類(lèi)和對(duì)象
    把相似的對(duì)象歸成一個(gè)類(lèi)。
    類(lèi)就是模版定義了通用與一個(gè)特定種類(lèi)的所有對(duì)象的狀態(tài)(變量)和行為(方法)
    類(lèi)是創(chuàng)建對(duì)象的模版,對(duì)象是類(lèi)的實(shí)例。
    掌握面向?qū)ο蟮碾y點(diǎn)在于思路的轉(zhuǎn)換,我們通常考慮解決問(wèn)題的方法。而不是考慮將問(wèn)題抽象成對(duì)象再去解決它。
    編寫(xiě)一個(gè)駕駛汽車(chē)的方法
    面向過(guò)程的程序設(shè)計(jì): 編寫(xiě)一個(gè)方法,void drivercar();
    面向?qū)ο蟮某绦蛟O(shè)計(jì): 將一輛汽車(chē)看成一個(gè)對(duì)象,將所有汽車(chē)對(duì)象的共性抽取出來(lái),設(shè)計(jì)一個(gè)類(lèi)Car,
      類(lèi)中有一個(gè)方法void drive(),用Car這個(gè)類(lèi)實(shí)例化一個(gè)具體的對(duì)象car,調(diào)用:car.drive().
     
     
     new關(guān)鍵字的作用。
      為對(duì)象分配內(nèi)存空間,引起對(duì)象構(gòu)造方法的調(diào)用。為對(duì)象返回一個(gè)引用。 
     
     
      構(gòu)造方法的名字和類(lèi)名相同,并且沒(méi)有返回值。
      構(gòu)造方法主要用于為類(lèi)的對(duì)象定義初始化狀態(tài)。
      我們不能直接調(diào)用構(gòu)造方法,必須通過(guò)new關(guān)鍵字來(lái)自動(dòng)調(diào)用,從而創(chuàng)建類(lèi)的實(shí)例。
      java的類(lèi)都要求有構(gòu)造方法,如果沒(méi)有定義構(gòu)造方法,java編譯器會(huì)為我們提供一個(gè)缺省的構(gòu)造方法,也就是不帶參數(shù)的構(gòu)造方法。
      缺省構(gòu)造方法默認(rèn)值:數(shù)值         0
                          booeean    false
                          char       ”\0"
                          對(duì)象       null
                         
    方法的重載:重載構(gòu)成的條件:方法的名稱(chēng)相同,但是參數(shù)類(lèi)型或參數(shù)個(gè)數(shù)不同,才能構(gòu)成方法的重載。


    特殊變量this
         this變量代表對(duì)象本身。
         當(dāng)類(lèi)中有兩個(gè)同名變量,一個(gè)屬于類(lèi)(類(lèi)的成員變量),而另一個(gè)屬于某個(gè)特定的方法(方法的局部變量),
      使用this區(qū)分成員變量和局部變量
         使用this簡(jiǎn)化構(gòu)造函數(shù)的調(diào)用。可以通過(guò)不帶參數(shù)的構(gòu)造方法調(diào)用帶參數(shù)的構(gòu)造方法。
         Point(int a,int b)
     {
      x=a;
      y=b;
     }
     Point()
     {
      this(1,2);
     }
     一個(gè)類(lèi)所有的實(shí)力(對(duì)象)調(diào)用的成員方法在內(nèi)存中只有一份拷貝,盡管在內(nèi)存中可能有多個(gè)對(duì)象,
    而數(shù)據(jù)成員在類(lèi)的每個(gè)對(duì)象所在內(nèi)存中都存在這一份拷貝。this變量允許相同的實(shí)例方法為不同的對(duì)象工作。
    每當(dāng)調(diào)用一個(gè)實(shí)例方法時(shí),this變量將被設(shè)置成引用改實(shí)例方法的特定的類(lèi)對(duì)象。方法的代碼接著會(huì)與this所代表的特定數(shù)據(jù)建立關(guān)聯(lián)。
        
        內(nèi)存模型 的概念
     
         靜態(tài)方法和靜態(tài)變量時(shí)屬于某一個(gè)類(lèi),而不屬于類(lèi)的對(duì)象。
         靜態(tài)方法和靜態(tài)變量的引用直接通過(guò)類(lèi)名引用。
         在靜態(tài)方法中不能調(diào)用非靜態(tài)的方法和引用非靜態(tài)的成員變量。反之,則可以。
         可以用類(lèi)的對(duì)象obj去調(diào)用靜態(tài)的方法method(),如 obj。method()。
        
     
      final定義的變量要在定義時(shí)初始化也可以放在構(gòu)造函數(shù)中實(shí)現(xiàn)
      常量通常定義為靜態(tài)的,是為了節(jié)省內(nèi)存。這時(shí)就要在定義時(shí)初始化。
      final定義的常量一般默認(rèn)用大寫(xiě)。

    繼承
     
       繼承是面向?qū)ο蟮年P(guān)鍵
       在java中,通過(guò)關(guān)鍵字extends繼承一個(gè)已有的類(lèi),被繼承的稱(chēng)為父類(lèi)(超類(lèi),基類(lèi)),新的類(lèi)稱(chēng)為子類(lèi)(派生類(lèi))。
       在java中,不允許多繼承。
      
    方法的覆蓋
    在子類(lèi)中定義一個(gè)與父類(lèi)同名、返回類(lèi)型、參數(shù)類(lèi)型均相同的一個(gè)方法,稱(chēng)為方法的覆蓋。覆蓋發(fā)生在子類(lèi)與父類(lèi)之間。
       class Animal
    {
     int height,weight;
     void eat()
     {
      System.out.println("animal eat");
     }
     void breathe()
     {
      System.out.println("animal breathe");
     }
     void sleep()
     {
      System.out.println("animal sleep");
     }
     
    }
    class Fish extends Animal
    {
     void breathe()
     {
      System.out.println("fish bubble");
     }
    }
    class Integration
    {
     public static void main(String[] args)
     {
      Animal an=new Animal();
      Fish fh= new Fish();
      
      an.breathe();
      fh.height=30;
      fh.breathe();
      
     }
    }
       特殊變量super,提供了對(duì)父類(lèi)的訪(fǎng)問(wèn)。
       可以使用super訪(fǎng)問(wèn)父類(lèi)被子類(lèi)隱藏的變量或覆蓋的方法。
       每個(gè)子類(lèi)構(gòu)造方法的第一條語(yǔ)句,都是隱含的調(diào)用super(),如果父類(lèi)沒(méi)有這種形勢(shì)的構(gòu)造函數(shù),那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò)。
      
       class Animal
    {
     int height,weight;
     void eat()
     {
      System.out.println("animal eat");
     }
     void breathe()
     {
      System.out.println("animal breathe");
     }
     void sleep()
     {
      System.out.println("animal sleep");
     }
     
    }
    class Fish extends Animal
    {
     void breathe()
     {
      super.breathe();
      super.height=40;
      System.out.println("fish bubble");
     }
    }
    class Integration
    {
     public static void main(String[] args)
     {
      //Animal an=new Animal();
      Fish fh= new Fish();
      
      //an.breathe();
      fh.height=30;
      fh.breathe();
      
     }
    }
      
       多態(tài)性,子類(lèi)有就調(diào)用子類(lèi)的。沒(méi)有就調(diào)用父類(lèi)的
       instanceof
       比較一個(gè)實(shí)例是否是一個(gè)類(lèi)的實(shí)例

    posted on 2007-08-26 18:48 rick 閱讀(193) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 四虎成人精品一区二区免费网站 | 中文字幕无码免费久久9一区9| 永久免费观看黄网站| 97无码人妻福利免费公开在线视频| 亚洲高清免费在线观看| 亚洲精品高清国产一久久| 中文字幕免费在线观看动作大片| 亚洲午夜精品久久久久久浪潮| 色哟哟国产精品免费观看| 亚洲人成无码网站久久99热国产| 特级aa**毛片免费观看| 亚洲国产人成精品| 亚洲无线码在线一区观看| 国产免费区在线观看十分钟| 女人被弄到高潮的免费视频| 亚洲色成人四虎在线观看| 8x8x华人永久免费视频| 久久影院亚洲一区| a级毛片在线免费| 亚洲美女视频一区二区三区| 91黑丝国产线观看免费 | 日韩a在线观看免费观看| 久久夜色精品国产噜噜亚洲AV| 免费观看激色视频网站bd| 亚洲图片一区二区| 成年女人色毛片免费看| 偷自拍亚洲视频在线观看| 亚洲五月综合缴情在线观看| 亚洲大片免费观看| 相泽南亚洲一区二区在线播放| 国产成人综合亚洲AV第一页 | 免费无码又爽又刺激网站直播| 亚洲国产成人久久综合一 | 日韩一区二区免费视频| 中文在线免费视频| 亚洲区精品久久一区二区三区| 日韩精品视频免费观看| 日本人成在线视频免费播放| 亚洲熟妇无码一区二区三区| 亚洲线精品一区二区三区 | 亚洲国产精品碰碰|