ITPub博客

首页 > 应用开发 > Java > 好程序员Java教程分享Java中this的几种用法

好程序员Java教程分享Java中this的几种用法

原创 Java 作者:好程序员IT 时间:2019-10-18 15:10:34 0 删除 编辑

   好程序员Java 教程分享 Java 中this 的几种用法,this 关键字必须放在非静态方法里面

 

  this 关键字代表自身,在程序中主要的使用用途有以下几个方面:

 

  ? 使用 this 关键字引用成员变量

 

  ? 使用 this 关键字在自身构造方法内部引用其它构造方法

 

  ? 使用 this 关键字代表自身类的对象

 

  ? 使用 this 关键字引用成员方法

 

  引用成员变量

 

  在一个类的方法或构造方法内部,可以使用“ this. 成员变量名”这样的格式来引用成员变量名,有些时候可以省略,有些时候不能省略。首先看一下下面的代码:

 

  /**

 

  * 使用 this 引用成员变量

 

  */

 

  publicclassReferenceVariable{

 

  privateinta;

 

  publicReferenceVariable(inta){

 

  this.a=a;

 

  }

 

  publicintgetA(){

 

  returna;

 

  }

 

  publicvoidsetA(inta){

 

  this.a=a;

 

  }

 

  }

 

  在该代码的构造方法和setA 方法内部,都是用 this.a 引用类的成员变量。因为无论在构造方法还是 setA 方法内部,都包含 2 个变量名为 a 的变量,一个是参数 a ,另外一个是成员变量 a 。按照 Java 语言的变量作用范围规定,参数 a 的作用范围为构造方法或方法内部,成员变量 a 的作用范围是类的内部,这样在构造方法和 setA 方法内部就存在了变量 a 的冲突, Java 语言规定当变量作用范围重叠时,作用域小的变量覆盖作用域大的变量。所以在构造方法和 setA 方法内部,参数 a 起作用。

 

  这样需要访问成员变量a 则必须使用 this 进行引用。当然,如果变量名不发生重叠,则 this 可以省略。

 

  但是为了增强代码的可读性,一般将参数的名称和成员变量的名称保持一致,所以this 的使用频率在规范的代码内部应该很多。

 

  引用构造方法

 

  在一个类的构造方法内部,也可以使用this 关键字引用其它的构造方法,这样可以降低代码的重复,也可以使所有的构造方法保持统一,这样方便以后的代码修改和维护,也方便代码的阅读。

 

  下面是一个简单的示例:

 

  /**

 

  * 使用 this 关键字引用构造方法

 

  */

 

  publicclassReferenceConstructor{

 

  inta;

 

  publicReferenceConstructor(){

 

  this(0);

 

  }

 

  publicReferenceConstructor(inta){

 

  this.a=a;

 

  }

 

  }

 

  这里在不带参数的构造方法内部,使用this 调用了另外一个构造方法,其中 0 是根据需要传递的参数的值,当一个类内部的构造方法比较多时,可以只书写一个构造方法的内部功能代码,然后其它的构造方法都通过调用该构造方法实现,这样既保证了所有的构造是统一的,也降低了代码的重复。

 

  在实际使用时,需要注意的是,在构造方法内部使用this 关键字调用其它的构造方法时,调用的代码只能出现在构造方法内部的第一行可执行代码。这样,在构造方法内部使用 this 关键字调用构造方法最多会出现一次。

 

  代表自身对象

 

  在一个类的内部,也可以使用this 代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是 this ,实际使用 this 代表自身类的对象的示例代码如下:

 

  /**

 

  * 使用 this 代表自身类的对象

 

  */

 

  publicclassReferenceObject{

 

  ReferenceObjectinstance;

 

  publicReferenceObject(){

 

  instance=this;

 

  }

 

  publicvoidtest(){

 

  System.out.println(this);

 

  }

 

  }

 

  在构造方法内部,将对象this 的值赋值给 instance ,在 test 方法内部,输出对象 this 的内容,这里的 this 都代表自身类型的对象。

 

  引用成员方法

 

在一个类的内部,成员方法之间的互相调用时也可以使用“ this. 方法名 ( 参数 ) ”来进行引用,只是所有这样的引用中 this 都可以省略,这里就不详细介绍了。

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2660519/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Scala
请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410779