学习啦 > 知识大全 > 知识百科 > 百科知识 > java中this的用法

java中this的用法

时间: 玉凤862 分享

java中this的用法

  This,英语单词,发音:[英][ðɪs][美][ðɪs]。常翻译为:这,这么。java中this的用法有哪些呢?本文是学习啦小编整理java中this的用法的资料,仅供参考。

  java中this的用法1

  1. this指当前对象。

  当在一个类中要明确指出使用对象变量或函数时加上this引用。如下面例子中:

  public class Hello {

  String s = "Hello";

  public Hello(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) {

  Hello x=new Hello("HelloWorld!");

  }

  }

  运行结果:

  s = HelloWorld!

  1 -> this.s = Hello

  2 -> this.s = HelloWorld!

  在这个例子中,构造函数Hello中,参数s与类Hello的变量s同名,这时直接对s进行操作则是对参数s进行操作。对类Hello的成员变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对构造函数中传递过来的参数s进行打印结果;

  第二行是对成员变量s的打印;第三行是先对成员变量s赋传过来的参数s值后再打印,所以结果是HelloWorld!

  2. 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!");

  }

  }

  运行结果:

  Hello from A!

  Hello from B!

  在这个例子中,对象A的构造函数中,new

  B(this)把对象A作为参数传递给了对象B的构造函数。

  java中this的用法2

  一、指自己所在的对象。

  比如在一搜索个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();

  而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了。

  二、看一个小例子中“this”的用法!

  /**

  * @author fengzhi-neusoft

  *

  * 本示例为了说明this的三种用法!

  */

  package test;

  public class ThisTest {

  private int i=0;

  //第一个构造器:有一个int型形参

  ThisTest(int i){

  this.i=i+1;//此时this表示引用成员变量i,而非函数参数i

  System.out.println("Int constructor i——this.i: "+i+"——"+this.i);

  System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));

  //从两个输出结果充分证明了i和this.i是不一样的!

  }

  // 第二个构造器:有一个String型形参

  ThisTest(String s){

  System.out.println("String constructor: "+s);

  }

  // 第三个构造器:有一个int型形参和一个String型形参

  ThisTest(int i,String s){

  this(s);//this调用第二个构造器

  //this(i);

  /*此处不能用,因为其他任何方法都不能调用构造器,只有构造方法能调用他。

  但是必须注意:就算是构造方法调用构造器,也必须为于其第一行,构造方法也只能调

  用一个且仅一次构造器!*/

  this.i=i++;//this以引用该类的成员变量

  System.out.println("Int constructor: "+i+"/n"+"String constructor: "+s);

  }

  public ThisTest increment(){

  this.i++;

  return this;//返回的是当前的对象,该对象属于(ThisTest)

  }

  public static void main(String[] args){

  ThisTest tt0=new ThisTest(10);

  ThisTest tt1=new ThisTest("ok");

  ThisTest tt2=new ThisTest(20,"ok again!");

  System.out.println(tt0.increment().increment().increment().i);

  //tt0.increment()返回一个在tt0基础上i++的ThisTest对象,

  //接着又返回在上面返回的对象基础上i++的ThisTest对象!

  }

  }

  运行结果:

  Int constructor i——this.i: 10——11

  String constructor: ok

  String constructor: ok again!

  Int constructor: 21

  String constructor: ok again!

  14

  细节问题注释已经写的比较清楚了,总结一下,其实this主要要三种用法:

  1、表示对当前对象的引用!

  2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

  3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!

  还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

  this的词语用法

  adj.(形容词)this用作形容词作“这”解时,用于修饰表示在时间、地点、想法上更接近讲话者的事物或人,也可与包括现在的日子或一段时间的词语连用。

  “this+one's+ n. ”是一种简洁的文体,有强调意味; “this+基数词+时间名词”表示一段时间。this可与of短语连用,后接名词性物主代词或名词所有格。

  pron.(代词)this用作代词可用以指叙述中的人或事物,即指前面提到过的人或事物或下文提及的事物; this一般作主语时才指人; 在电话用语中, this用来指代自己。

  当陈述部分的主语是this时,附加疑问部分的主语须用it。

看了java中this的用法的人还看了:

1.c中this的用法

2.this的复数和用法例句

3.java标签如何使用 如何使用java标签

4.java get set方法的使用

2668017