亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

談?wù)?Java 中 this 的使用方法

 更新時(shí)間:2014年01月19日 13:02:20   作者:  
這篇文章主要介紹了Java 中 this 的使用方法,需要的朋友可以參考下

1.  this是指當(dāng)前對(duì)象自己。
    當(dāng)在一個(gè)類中要明確指出使用對(duì)象自己的的變量或函數(shù)時(shí)就應(yīng)該加上this引用。如下面這個(gè)例子中:

復(fù)制代碼 代碼如下:

public class A {
  String s = "Hello";   
  public A(String s) {
    System.out.println("s = " + s);
    System.out.println("1 -> this.s = " + this.s);
    this.s = s;
    System.out.println("2 -> this.s = " + this.s);
  }

  public static void main(String[] args) {
    new A("HelloWorld!");
  }
}

運(yùn)行結(jié)果: 


s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!

    在這個(gè)例子中,構(gòu)造函數(shù)A中,參數(shù)s與類A的變量s同名,這時(shí)如果直接對(duì)s進(jìn)行操作則是對(duì)參數(shù)s進(jìn)行操作。若要對(duì)類A的變量s進(jìn)行操作就應(yīng)該用this進(jìn)行引用。運(yùn)行結(jié)果的第一行就是直接對(duì)參數(shù)s進(jìn)行打印結(jié)果;后面兩行分別是對(duì)對(duì)象A的變量s進(jìn)行操作前后的打印結(jié)果。

2.  把this作為參數(shù)傳遞

    當(dāng)你要把自己作為參數(shù)傳遞給別的對(duì)象時(shí),也可以用this。如:

復(fù)制代碼 代碼如下:

public class A {
  public A() {
    new B(this).print();
  }

  public void print() {
    System.out.println("Hello from A!");
  }
}

public class B {
  A a;
  public B(A a) {
    this.a = a;
  }

  public void print() {
    a.print();
    System.out.println("Hello from B!");
  }
}

運(yùn)行結(jié)果:
Hello from A!
Hello from B!

    在這個(gè)例子中,對(duì)象A的構(gòu)造函數(shù)中,用new B(this)把對(duì)象A自己作為參數(shù)傳遞給了對(duì)象B的構(gòu)造函數(shù)。

3.  注意匿名類和內(nèi)部類中的this。

    有時(shí)候,我們會(huì)用到一些內(nèi)部類和匿名類。當(dāng)在匿名類中用this時(shí),這個(gè)this則指的是匿名類或內(nèi)部類本身。這時(shí)如果我們要使用外部類的方法和變量的話,則應(yīng)該加上外部類的類名。如下面這個(gè)例子:

復(fù)制代碼 代碼如下:

public class A {
  int i = 1;

  public A() {
    Thread thread = new Thread() {
      public void run() {
        for(;;) {
          A.this.run();
          try {
            sleep(1000);
          } catch(InterruptedException ie) {
          }
        }
      }
    };
    thread.start();
  }  

  public void run() {
    System.out.println("i = " + i);
    i++;
  }

  public static void main(String[] args) throws Exception {
    new A();
  }
}

    在上面這個(gè)例子中, thread 是一個(gè)匿名類對(duì)象,在它的定義中,它的 run 函數(shù)里用到了外部類的 run 函數(shù)。這時(shí)由于函數(shù)同名,直接調(diào)用就不行了。這時(shí)有兩種辦法,一種就是把外部的 run 函數(shù)換一個(gè)名字,但這種辦法對(duì)于一個(gè)開(kāi)發(fā)到中途的應(yīng)用來(lái)說(shuō)是不可取的。那么就可以用這個(gè)例子中的辦法用外部類的類名加上 this 引用來(lái)說(shuō)明要調(diào)用的是外部類的方法 run。

相關(guān)文章

  • MapReduce實(shí)現(xiàn)TopN效果示例解析

    MapReduce實(shí)現(xiàn)TopN效果示例解析

    這篇文章主要為大家介紹了MapReduce實(shí)現(xiàn)TopN效果示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)

    只有理論是不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+vue+maven+elementui+mysql實(shí)現(xiàn)一個(gè)校園跑腿管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2022-01-01
  • Sentinel源碼解析入口類和SlotChain構(gòu)建過(guò)程詳解

    Sentinel源碼解析入口類和SlotChain構(gòu)建過(guò)程詳解

    這篇文章主要為大家介紹了Sentinel源碼解析入口類和SlotChain構(gòu)建過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • idea中如何過(guò)濾某些文件不提交的方法實(shí)現(xiàn)

    idea中如何過(guò)濾某些文件不提交的方法實(shí)現(xiàn)

    本文主要介紹了idea中如何過(guò)濾某些文件不提交,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 淺談Java虛擬機(jī)對(duì)內(nèi)部鎖的四種優(yōu)化方式

    淺談Java虛擬機(jī)對(duì)內(nèi)部鎖的四種優(yōu)化方式

    這篇文章主要介紹了淺談Java虛擬機(jī)對(duì)內(nèi)部鎖的四種優(yōu)化方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明

    SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明

    這篇文章主要介紹了SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • java如何給對(duì)象按照字符串屬性進(jìn)行排序

    java如何給對(duì)象按照字符串屬性進(jìn)行排序

    這篇文章主要介紹了java如何給對(duì)象按照字符串屬性進(jìn)行排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 詳解Spring AOP自定義可重復(fù)注解沒(méi)有生效問(wèn)題

    詳解Spring AOP自定義可重復(fù)注解沒(méi)有生效問(wèn)題

    本文主要介紹了Spring AOP自定義可重復(fù)注解沒(méi)有生效問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SpringMVC 單文件上傳與多文件上傳實(shí)例

    SpringMVC 單文件上傳與多文件上傳實(shí)例

    這篇文章主要介紹了SpringMVC 單文件上傳與多文件上傳實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Swagger的使用教程詳解

    Swagger的使用教程詳解

    Swagger是一個(gè)強(qiáng)大的API文檔工具,它能夠簡(jiǎn)化API文檔的編寫和維護(hù)工作,提供了一種方便的方式來(lái)描述、展示和測(cè)試RESTful風(fēng)格的Web服務(wù)接口,本文介紹了Swagger的安裝配置和使用方法,并提供了示例代碼,感興趣的朋友一起學(xué)習(xí)吧
    2023-06-06

最新評(píng)論