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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java中this的使用

2019-11-18 15:24:22
字體:
供稿:網(wǎng)友

  1. this是指當(dāng)前對(duì)象自己
  當(dāng)在一個(gè)類中要明確指出使用對(duì)象自己的的變量或函數(shù)時(shí)就應(yīng)該加上this引用。如下面這個(gè)例子中:
  
  public class A {
  
   String s = "Hello";
   
   public A(String s) {
    System.out. 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。如:
  
  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è)例子:
  
  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è)開發(fā)到中途的應(yīng)用來說是不可取的。那么就可以用這個(gè)例子中的辦法用外部類的類名加上 this 引用來說明要調(diào)用的是外部類的方法 run。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 民勤县| 凉城县| 肃北| 浠水县| 杭锦后旗| 遂平县| 沙田区| 连云港市| 绍兴市| 隆尧县| 双江| 永善县| 当雄县| 津市市| 湛江市| 信丰县| 镇雄县| 永平县| 新晃| 保康县| 屏山县| 武平县| 馆陶县| 朝阳县| 深州市| 安丘市| 临泽县| 贵溪市| 秦皇岛市| 吐鲁番市| 阿拉善盟| 通化县| 黔江区| 固原市| 十堰市| 手游| 闸北区| 贵阳市| 丰台区| 二手房| 吉木萨尔县|