国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java中的this關鍵字

2019-11-18 13:21:08
字體:
來源:轉載
供稿:網友

  假如有兩個同類型的對象,分別叫作a和b,那么您也許不知道如何為這兩個對象同時調用一個f()方法:
  
  class Banana { void f(int i) { /* ... */ } }
  Banana a = new Banana(), b = new Banana();
  a.f(1);
  b.f(2);
  
  若只有一個名叫f()的方法,它怎樣才能知道自己是為a還是為b調用的呢?
  為了能用簡便的、面向對象的語法來書寫代碼——亦即“將消息發給對象”,編譯器為我們完成了一些幕后工作。其中的秘密就是第一個自變量傳遞給方法f(),而且那個自變量是預備操作的那個對象的句柄。所以前述的兩個方法調用就變成了下面這樣的形式:
  
  Banana.f(a,1);
  Banana.f(b,2);
  
  這是內部的表達形式,我們并不能這樣書寫表達式,并試圖讓編譯器接受它。但是,通過它可理解幕后到底發生了什么事情。
  假定我們在一個方法的內部,并希望獲得當前對象的句柄。由于那個句柄是由編譯器“秘密”傳遞的,所以沒有標識符可用。然而,針對這一目的有個專用的要害字:this。this要害字(注重只能在方法內部使用)可為已調用了其方法的那個對象生成相應的句柄??上髮Υ渌魏螌ο缶浔粯訉Υ@個句柄。但要注重,假若預備從自己某個類的另一個方法內部調用一個類方法,就不必使用this。只需簡單地調用那個方法即可。當前的this句柄會自動應用于其他方法。所以我們能使用下面這樣的代碼:
  
  class APRicot {
  void pick() { /* ... */ }
  void pit() { pick(); /* ... */ }
  }
  
  在pit()內部,我們可以說this.pick(),但事實上無此必要。編譯器能幫我們自動完成。this要害字只能用于那些非凡的類——需明確使用當前對象的句柄。例如,假若您希望將句柄返回給當前對象,那么它經常在return語句中使用。
  
  
  //: Leaf.java
  // Simple use of the "this" keyWord
  
  public class Leaf {
   private int i = 0;
   Leaf increment() {
    i++;
    return this;
   }
   void print() {
    System.out.println("i = " + i);
   }
   public static void main(String[] args) {
    Leaf x = new Leaf();
    x.increment().increment().increment().print();
   }
  } ///:~
  
  由于increment()通過this要害字返回當前對象的句柄,所以可以方便地對同一個對象執行多項操作。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵港市| 河曲县| 囊谦县| 马关县| 扎鲁特旗| 武安市| 高碑店市| 瑞丽市| 上林县| 金秀| 长乐市| 曲沃县| 文安县| 讷河市| 张家川| 库伦旗| 荔浦县| 绥滨县| 昭平县| 左云县| 光泽县| 行唐县| 浮山县| 进贤县| 咸宁市| 疏附县| 永嘉县| 桐城市| 龙门县| 罗平县| 子长县| 波密县| 晋江市| 澜沧| 和静县| 密山市| 开封县| 江陵县| 共和县| 聊城市| 确山县|