<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Vincent217

      博客園 首頁 新隨筆 聯系 訂閱 管理

      通過用static來定義方法或成員,為我們編程提供了某種便利,從某種程度上可以說它類似于C語言中的全局函數和全局變量。但是,并不是說有了這種便利,你便可以隨處使用,如果那樣的話,你便需要認真考慮一下自己是否在用面向對象的思想編程,自己的程序是否是面向對象的。 
      好了,現在開始討論this&super這兩個關鍵字的意義和用法。 
      在Java中,this通常指當前對象,super則指父類的。當你想要引用當前對象的某種東西,比如當前對象的某個方法,或當前對象的某個成員,你便可以利用this來實現這個目的,當然,this的另一個用途是調用當前對象的另一個構造函數,這些馬上就要討論。如果你想引用父類的某種東西,則非super莫屬。由于this與super有如此相似的一些特性和與生俱來的某種關系,所以我們在這一塊兒來討論,希望能幫助你區分和掌握它們兩個。 
      在一般方法中 
      最普遍的情況就是,在你的方法中的某個形參名與當前對象的某個成員有相同的名字,這時為了不至于混淆,你便需要明確使用this關鍵字來指明你要使用某個成員,使用方法是“this.成員名”,而不帶this的那個便是形參。另外,還可以用“this.方法名”來引用當前對象的某個方法,但這時this就不是必須的了,你可以直接用方法名來訪問那個方法,編譯器會知道你要調用的是那一個。下面的代碼演示了上面的用法: 
      public class DemoThis{ 
      private String name; 
      private int age; 
      DemoThis(String name,int age){ 
      setName(name); 
      //你可以加上this來調用方法,像這樣:this.setName(name);但這并不是必須的 
      setAge(age); 
      this.print(); } 
      public void setName(String name){ 
      this.name=name;//此處必須指明你要引用成員變量 

      public void etAge(int age){ 
      this.age=age; 

      public void print(){ 
      System.out.println("Name="+name+" ge="+age); 
      //在此行中并不需要用this,因為沒有會導致混淆的東西 

      public static void main(String[] args){ 
      DemoThis dt=new DemoThis("Kevin","22"); 
      這段代碼很簡單,不用解釋你也應該能看明白。在構造函數中你看到用this.print(),你完全可以用print()來代替它,兩者效果一樣。下面我們修改這個程序,來演示super的用法。 
      class Person{ 
      public int c; 
      private String name; 
      private int age; 
      protected void setName(String name){ 
      this.name=name; 

      protected void setAge(int age){ 
      this.age=age; 

      protected void print(){ 
      System.out.println("Name="+name+" Age="+age); 


      public class DemoSuper extends Person{ 
      public void print(){ 
      System.out.println("DemoSuper:"); 
      super.print(); 

      public static void main(String[] args){ 
      DemoSuper ds=new DemoSuper(); 
      ds.setName("kevin"); 
      ds.setAge(22); 
      ds.print(); 


      在DemoSuper中,重新定義的print方法覆寫了父類的print方法,它首先做一些自己的事情,然后調用父類的那個被覆寫了的方法。輸出結果說明了這一點: 
      DemoSuper: 
      Name=kevin Age=22

      這樣的使用方法是比較常用的。另外如果父類的成員可以被子類訪問,那你可以像使用this一樣使用它,用“super.父類中的成員名”的方式,但常常你并不是這樣來訪問父類中的成員名的。 
      在構造函數中構造函數是一種特殊的方法,在對象初始化的時候自動調用。在構造函數中,this和super也有上面說的種種使用方式,并且它還有特殊的地方,請看下面的例子:

       

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      class Person {
       
          public static void prt(String s) {
              System.out.println(s);
          }
       
          Person() {
              prt("A Person.");
          }
       
          Person(String name) {
              prt("A person name is:" + name);
       
          }
      }
       
      public class Chinese extends Person {
          Chinese() {
              super(); // 調用父類構造函數(1)
              prt("A chinese.");// (4)
          }
       
          Chinese(String name) {
              super(name);// 調用父類具有相同形參的構造函數(2)
              prt("his name is:" + name);
          }
       
          Chinese(String name, int age) {
              this(name);// 調用當前具有相同形參的構造函數(3)
              prt("his age is:" + age);
          }
       
          public static void main(String[] args) {
              Chinese cn = new Chinese();
              cn = new Chinese("kevin");
              cn = new Chinese("kevin", 22);
          }
      }

        

      在這段程序中,this和super不再是像以前那樣用“.”連接一個方法或成員,而是直接在其后跟 
      上適當的參數,因此它的意義也就有了變化。super后加參數的是用來調用父類中具有相同形式的 
      構造函數,如1和2處。this后加參數則調用的是當前具有相同參數的構造函數,如3處。當然,在 
      Chinese的各個重載構造函數中,this和super在一般方法中的各種用法也仍可使用,比如4處,你 
      可以將它替換為“this.prt”(因為它繼承了父類中的那個方法)或者是“super.prt”(因為它 
      是父類中的方法且可被子類訪問),它照樣可以正確運行。但這樣似乎就有點畫蛇添足的味道 
      了。 
      最后,寫了這么多,如果你能對“this通常指代當前對象,super通常指代父類”這句話牢記在 
      心,那么本篇便達到了目的,其它的你自會在以后的編程實踐當中慢慢體會、掌握。另外關于本 
      篇中提到的繼承,請參閱相關Java教程

       

      本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/yihuei123/archive/2007/06/04/1637893.aspx

      posted on 2014-02-21 17:05  Vincent217  閱讀(790)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 悠悠人体艺术视频在线播放| 尹人香蕉久久99天天拍| 亚洲精品日韩中文字幕| 2019国产精品青青草原| 狼人大伊人久久一区二区| 日韩永久永久永久黄色大片| 亚洲欧洲自拍拍偷午夜色| 扬中市| 久热这里只有精品视频六| 日本高清久久一区二区三区| 成人无号精品一区二区三区| 精品国偷自产在线视频99| 国产精品人妻熟女男人的天堂| 午夜国产精品福利一二| 欧美日韩中文国产一区| 韩国精品福利视频一区二区| 亚洲国产美国产综合一区| 亚洲国产精品高清久久久| 西西444www高清大胆| 97色成人综合网站| 人妻饥渴偷公乱中文字幕| 亚洲精品国产一二三区| 国产精品一二三区久久狼| 国产婷婷精品av在线| 国产精品十八禁一区二区| 丁香五月亚洲综合在线国内自拍| 无限看片在线版免费视频大全| 乱人伦人妻中文字幕无码久久网| 蜜桃视频一区二区三区四| 午夜AAAAA级岛国福利在线| 精品人妻免费看一区二区三区| 国内自拍偷拍福利视频看看| 欧洲精品色在线观看| 国产超高清麻豆精品传媒麻豆精品| 熟女在线视频一区二区三区| 精品国偷自产在线视频99 | 亚洲国产日韩在线视频| 亚洲av成人一区在线| 青青草原国产精品啪啪视频 | 亚洲a∨无码无在线观看| 国产一区一一区高清不卡|