老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

java中this關(guān)鍵字的用法示例

這篇文章主要介紹了java中this關(guān)鍵字的用法示例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

為平原等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及平原網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站設(shè)計、平原網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

Java提供了一個this關(guān)鍵字,this關(guān)鍵字總是指向調(diào)用該方法的對象。根據(jù)this出現(xiàn)的位置的不同,this作為對象的默認(rèn)引用有兩種情形。

1)構(gòu)造器中引用該構(gòu)造器正在初始化的對象。

2)在方法中引用調(diào)用該方法的對象。

this關(guān)鍵字最大的作用就是讓類中一個方法,訪問該類里的另一個方法或者實例變量。假設(shè)定義了一個Person類,這個Person對象的eat()方法需要調(diào)用它的move()方法,則如何做呢?是否應(yīng)該定義如下的Person類呢?

public class Person {
    
    //定義一個move()方法
    public void move(){
      System.out.println("正在執(zhí)行move()方法");
    }
    //定義一個eat()方法,eat()方法需要借助move()方法
    public void eat(){
      Person p = new Person();
      p.move();
      System.out.println("正在執(zhí)行eat()方法");
    }
    
    public static void main(String[] args) {
      //創(chuàng)建Person對象
      Person p = new Person();
      //調(diào)用Person的eat()方法
      p.eat();
    }
  }

運行結(jié)果為:

正在執(zhí)行move()方法
正在執(zhí)行eat()方法

以上這種方式確實能夠做到在eat()方法里調(diào)用move()方法,但從main()方法里的程序中可以看出,一共創(chuàng)建了兩個對象:main()方法里創(chuàng)建一個對象;eat()方法里創(chuàng)建一個對象。可是真的需要創(chuàng)建兩個對象嗎?答案是否定的!因為當(dāng)程序調(diào)用eat()方法時一定會提供一個Person對象,而不需要重新創(chuàng)建一個Person對象了。

因此需要在eat()方法中獲得調(diào)用該方法的對象,通過this關(guān)鍵字就可以滿足這個需求。

this可以代表任何對象,當(dāng)this出現(xiàn)在某個方法體中時,它所代表的對象是不確定的,但它的類型是確定的,它所代表的類型只能是當(dāng)前類:只有當(dāng)這個方法被調(diào)用時,它所代表的對象才被確定下來:誰在調(diào)用這個方法,this就代表誰。

將上面的Person類中的eat()方法改為一下這種方式更合適:

//定義一個eat()方法,eat()方法需要借助move()方法
public void eat(){
  //使用this引用調(diào)用eat()方法的對象
  this.move();
  System.out.println("正在執(zhí)行eat()方法");
}

上述程序中eat()方法需要依賴于move()方法,現(xiàn)實中這種依賴情形非常常見,例如寫字方法需要拿筆的方法,這種依賴都是同一個對象兩個方法之間的依賴。因此,Java允許對象的的一個成員直接調(diào)用另一成員,可以省略this前綴。也就是說,上面的程序可以改為如下形式:

public void eat(){
  move();
  System.out.println("正在執(zhí)行eat()方法");
}

另外一種情形是:this關(guān)鍵字可用于構(gòu)造器中作為默認(rèn)引用,由于構(gòu)造器是直接使用new關(guān)鍵字來調(diào)用,而不是使用對象來調(diào)用的,所以this在構(gòu)造器中代表該構(gòu)造器正在初始化的對象。例如下面的程序:

public class Person {
    //定義一個名為age的成員變量
    public int age;
    
    //構(gòu)造器
    public Person() {
      //在構(gòu)造器里定義一個age變量
      int age = 0;
      //使用this代表該構(gòu)造器正在初始化的對象
      //下面的代碼將會把該構(gòu)造器正在初始化的對象的age成員變量設(shè)為3
      this.age = 3;
    }


    public static void main(String[] args) {
      //使用new Person()創(chuàng)建的對象的age成員變量都將被設(shè)為3
      //下面代碼輸出3
      System.out.println(new Person().age);
    }
  }

與普通方法類似的是,大部分時候,在構(gòu)造器中訪問其它成員變量和方法時都可以省略this前綴,但如果構(gòu)造器中有一個與成員變量同名的局部變量,又必須在構(gòu)造器中訪問這個被覆蓋的成員變量,則必須使用this前綴。如上面程序所示。

當(dāng)this作為對象的默認(rèn)引用使用時,程序可以像訪問普通引用變量一樣來訪問這個this引用,甚至可以把this當(dāng)成普通方法的返回值。請看下面程序:

public class Person {
    public int age;
    
    public Person grow() {
      age ++;
      return this;
    }

    public static void main(String[] args) {
      Person p = new Person();
      //可以連續(xù)調(diào)用同一個方法
      p.grow().grow().grow();
      System.out.println("p對象的age的值是:"+p.age);
    }
  }

運行結(jié)果為:

p對象的age的值是:3

從上面的程序可以看出,如果在某個方法中把this作為返回值,則可以多次連續(xù)調(diào)用同一個方法,從而使得代碼更加的簡潔。但這種方式容易造成實際意義的模糊,例如上面的group()方法,用于表示對象的生長,即age變量的值加1,實際上不應(yīng)該有返回值。

最后需要強調(diào)一點:靜態(tài)成員不能直接訪問非靜態(tài)成員,即static修飾的方法不能訪問不適用static修飾的普通方法。對于static修飾的方法而言,可以使用類直接調(diào)用該方法,如果在static修飾的方法中使用this關(guān)鍵字,則這個關(guān)鍵字就無法指向合適的對象。所以,static修飾的方法中不能使用this引用。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“java中this關(guān)鍵字的用法示例”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


新聞標(biāo)題:java中this關(guān)鍵字的用法示例
文章出自:http://www.xueling.net.cn/article/ijophg.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 国产精品草草在线观看 | 激情综合婷婷丁香五月 | 国产成人麻豆亚洲综合无码精品 | 少妇厨房愉情理伦片免费 | 亚洲精品九九 | 亚洲综合在线一区 | 草草视频在线观看 | 亚洲大尺度无码无码专区 | 久久网伊人 | 日韩亚洲欧美中文在线 | 91亚洲精品久久久久图片蜜桃 | 国产一二 | 新版天堂资源中文www连接 | 日韩综合色 | 天天操天天干天天爱 | 亚洲国产欧美在线人成最新 | 精品一二三区视频 | 日韩人妻无码一区二区三区综合部 | 日韩精品免费一区 | 奇米影视7777狠狠狠狠视频 | 亚洲免费图区在线视频 | 国产一精品一AV一免费爽爽 | 自拍偷拍国产精品 | 日韩精品一区二区三区中文精品 | 视频一区二区三区四区五区 | 欧美激情小视频 | 中国xxxx真实自拍 | 欧美成免费A级毛片 | 一区二区三区伦理片 | 亚洲综合在线视频 | 日本A级毛片无卡免费视频 99热这里只有精品4 | 中文字幕人妻三级中文无码视频 | 国产亚洲精品无码专区 | 亚洲伊人久久精品影院一美女洗澡 | 一本大道综合伊人精品热热 | 国产乱淫a∨片免费观看 | 日本aaaa片毛片免费观蜜桃 | 毛片全网站 | 69视频播放| 18出禁止看的啪视频网站 | 黑人操亚洲女人 |