this的用法

转载 2004年11月02日 17:17:00
众所周知,this的两种用法非常普遍.

 1.代替当前实例.例如this.成员变量名,this.成员方法名

  2.代替构造函数,比如this().

  上述两点不再赘述.

  但是,我觉得this还有一种现象大家可能没有注意到:

  可能有时候你会发现如下的现象:

  public class Test implements Runnable{
      Thread thread1;
      Thread thread2;
      public Test(){
        thread1 = new Thread(this,"1");//---------------------->|
        thread2 = new Thread(this,"2");//---------------------->|
      }
      public static void main(String args[]){
        Test t = new Test();
        t.startThreads();
      }
      public void run(){
        //do thread's things
      }
      public void startThreads(){
        thread1.start();
        thread2.start();
      }
    }

  在|处,你可能很奇怪:为什么可以在还没有创建的时候就可以自己调用自己呢?

  为了讲清楚上面的现象,必须先讲清楚构造函数的继承.

  如果有两个类成继承关系,那么

  如果缺省构造器不显式声明,那么子类构造器必先调用其父类缺省构造器(其实我觉得叫第一构造器更为合适,就是没有入参的构造器),再调用自己的构造器。

  下面我们接着谈上面奇怪的现象,为什么还可以在没有创建子类对象的时候就可以用this代替本身呢?那是因为在调用子类构造器之前,已经调用了父类的缺省构造器(父类为Object).

>>>在java中的用法

>>>(按位右移不足补0),表示无符号右移! 右移表达式的位,不保留符号。 result = expression1 >>> expression2 参数 result 任何变量。 exp...
  • Tomstrong_369
  • Tomstrong_369
  • 2015年03月04日 19:42
  • 930

include的用法

  1、asp.net页面也可以像asp那样,用include来包含文件:     include htm:        2、也可以...
  • beautifulsarah
  • beautifulsarah
  • 2016年12月07日 16:52
  • 1374

scala中=>的用法

1、我们在定义函数值(function value)的时候需要用到=>,如:val a=(x:Int)=>x+1在这里它的作用是指定函数值的具体操作,还可以进行这样的定义val b=(x:Int)=>...
  • yucf1988
  • yucf1988
  • 2011年05月27日 11:26
  • 1621

jQuery基本用法

screen.css:/**********************************Use: Reset Styles for all browsers********************...
  • heyuanjia520
  • heyuanjia520
  • 2009年12月08日 12:51
  • 11088

#include "" 和include<>的用法

在#include命令中,文件名可以用双撇号或尖括号括起来,如可以在file1.c中用                                                     #in...
  • u011352311
  • u011352311
  • 2014年01月02日 16:05
  • 3616

scanf的用法

说来惭愧,我学编程一年多了,但都没怎么认真学,记得去年教我们C语言课的老师是上了十五节课,每节课差不多俩小时,还有过几次上机课,可惜我课上虽然听的还算是比较认真,但课下却没怎么看书,最终结课时感觉自己...
  • u012421456
  • u012421456
  • 2014年01月19日 12:06
  • 7083

JavaScript用法详解

JavaScript用法详解
  • xinyuan_java
  • xinyuan_java
  • 2015年11月22日 14:32
  • 445

random的用法

package dsfa; import java.util.Scanner; public class A { public static void main(String args[]) {...
  • wuxiushu
  • wuxiushu
  • 2016年06月07日 15:19
  • 722

十.Sql server中in的用法

In这个指令在sql中也是时常可见的,我们这里还是以实例为主进行讲解,它的语法格式: SELECT "栏位名"  FROM "表格名"  WHERE "栏位名" IN('值一', '值二', ...
  • kiqiNie
  • kiqiNie
  • 2012年10月31日 15:29
  • 1834

Continue的两种用法

1.没有标签的时候,continue的作用是忽略本次循环剩下的语句,直接进行本层循环的下一次循环,而不会结束循环,如下例子 public class Continue { public stati...
  • love_java_cc
  • love_java_cc
  • 2015年01月12日 20:11
  • 8085
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:this的用法
举报原因:
原因补充:

(最多只允许输入30个字)