java中this关键字小结

来源:互联网 发布:log4cpp linux编译 编辑:程序博客网 时间:2024/05/17 08:34
在java中有许多关键字,比如this,super,final等,可是在实际的应用中我相信还有许多小伙伴和我一样,对this关键字有不懂的地方,下面呢我给大家分享一下我在学习中对于this关键字的使用的一些小小的总结。
在程序中通过使用this和super关键字,可以实现对类内部的很多内容的使用,也有助于理解面向对象的实现原理,更便于理解面向对象技术内部的实现。
1·this关键字用途
this关键字代表自身,在程序中主要的用途有以下几个方面:
  • 使用this关键字引用成员变量;
  • 使用this关键字在自身构造方法中引用其他构造的方法;
  • 使用this关键字代表自身类的对象;
  • 使用this关键字引用成员方法。
1·1引用成员变量
在一个类的方法或者构造方法内部,可以使用”this·成员变量名“这样的格式来引用成员变量名,有的时候可以省略,但有时不能省略。先来看看下面代码:
/*使用this关键字引用成员变量*/
public class ReferenceVarible {
       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方法的内部,都包含两个变量名为a的变量,一个参数a,另外一个是成员变量a。按照java语言的变量作用范围规定,参数a的作用范围为构造方法或构造方法内部,成员变量a的作用是类的内部,这样在构造方法和setA方法内部就存在了变量a的冲突。java语言规定当变量作用范围重叠时,作用域小的变量覆盖作用于大的变量,所以在构造方法和setA方法内部,参数a起作用。
这样,需要访问成员变量a则必须使用this进行访问。当然,如果变量名不发生重叠,则this可省略。但是为了增强代码的可读性,一般讲参数的名称和成员变量的名称保持一致,所以this在规定代码内部使用频率很高。
1·2引用构造方法
在一个类的构造方法内部,也可以使用this关键字引用其他的构造方法,这样可以降低代码的重复率,也可以使用所有的构造方法保持一致,这样就方便了代码的阅读及以后的维护和修改。下面看一个简单的实例:
/*使用this关键字引用构造方法*/
public class ReferenceConstructor {
int a;

public ReferenceConstructor() {
this(0);
}

public ReferenceConstructor(int a) {
this.a = a;
}
}
这里在不带在不带参数的构造方法内部使用this调用了另一个构造方法,其中0是根据需要传递的参数的值。当一个类的内部的 一个构造方法比较多时,可以只书写一个构造方法内部功能代码,然后其他的构造方法都通过调用该方法实现,这样既保证了所有构造的统一,也降低了代码的重复。
在实际使用时需要注意的是,在构造方法内部使用this关键字调用其他方法时,调用的代码只能在构造方法内部的第一行可执行代码。因此,在构造方法内部使用this关键字调用构造方法只能出现一次。
1·3代表自身对象
在一个类的内部,也可以使用this代表自身的对象。话句话说,每个类内部都只有一个成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this。实际使用this代表自身对象的示例代码如下:
/*使用this关键字*/
public class ReferenceObject {
  ReferenceObject instance;

public ReferenceObject() {
instance = this;
}

public void test () {
        System.out.println(this);
}
}
在构造方法的内部将对象this的值赋给instance,在test方法内部输出对象this的内容,这里的this都代表自身类型的对象。
1·4引用成员方法
在一个类的内部,成员方法之间互相调用时也可以使用”this.方法名(参数)“来进行引用,只是所有的引用中的this都可以省略,此处不再赘述。
0 0
原创粉丝点击