为了程序的可读性,通常将一个类中的表示同一属性的变量进行统一的命名,但是这样做又会导致成员变量与局部变量名字冲突导致无法访问成员变量,为了解决这个问题,java中引入了this这个关键字!所以this 的作用就是用于在方法中访问对象的其他成员!
this关键字有以下三种常见用法:
1)通过this关键字可以明确的访问成员变量,解决与局部变量重名的矛盾!(成员变量与局部变量冲突的时候)
class Student{ int id; public Student(int id){ this.id=id; } public int getId(){ return this.id; } }构造方法中的参数是id,它是一个局部变量与成员变量id重名。通常在构造方法中使用this.id访问成员变量,通过id访问构造方法中的内部变量!
2)通过this 关键字可以调用成员方法!(多个成员方法的时候)
class Person{ public void eat{ ... } public void behavior{ this.eat(); ... } }
在一个类中有多个成员方法的时候,通过this关键字可以方便的实现在一个成员方法中调用另一个成员方法!
3)构造方法是在实例化对象的时候被java虚拟机自动调用的,在程序中无法像调用一般成员方法一样调用构造方法,但是可以通过在一个构造方法中使用this(参数1,参数2,参数3。。。)的形式来调用其他的构造方法!(多个构造方法的时候)
class Student{ public Student(){ System.out.print("访问了无参构造方法!"); } public Student(String id){ this(); System.out.println("访问了有参构造方法!"); } } public class eg{ public static void main(String[] args){ Student s=new Student(3);//实例化对象的时候 } }
<1> this()的调用必须放在第一行,而且只能出现一次!
<2>this()的调用只能是在构造方法中调用另一个构造方法,不能再成员方法中调用构造方法!
<3>不能在一个类的两个构造方法中使用this互相调用!这样叫容易造成死循环!
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/ice_alone/article/details/46984895