当前位置: 首页 > 编程语言 > Java > 正文

Java编程那些事儿67——this和super

时间:2010-03-11 csdn 陈跃峰

下面再来介绍一下this和super关键字的使用。在程序中通过使用this和super关键字,可以实现对于类内部很多内容方便的引用,也有助于理解面向对象的实现原理,更方便的理解面向对象技术的内部实现。

8.8.1 this关键字

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

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

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

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

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

8.8.1.1 引用成员变量

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

/**
* 使用this引用成员变量
*/
public class ReferenceVariable {
 private int a;

 public ReferenceVariable(int a){
  this.a = a;
 }

 public int getA(){
  return a;
 }

 public void setA(int a){
  this.a = a;
 }}

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

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

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