一、this作为本类当前对象的引用
用法:
1.方法中当前对象的成员变量与定义的局部变量重名时用this进行区分。例如:变量名:variate,那么方法中的this.variate代表当前对象的成员变量variate,variate代表方法中定义的局部变量。
代码示例
2.作为方法的参数,传递本能对象的引用。
代码示例
3.作为方法的返回值,返回当前对象。
代码示例
二、this(参数1,参数2,......,参数n)方法用来调用本类其他的构造方法
使用规则:
1.该方法只能在本类的构造方法中使用。
2.为了便于理解,你可以将this(参数1,参数2,......,参数n)方法中的this看成本类类名,这样看起来就像是构造方法了。
3.该方法只能在构造方法方法体的第一行使用。
4.从第3点可知,在一个构造方法中最多只能调用一个this(参数......)方法。
5.要防止构造方法陷入死循环。比如类中有多个构造方法都有一个this(参数1,参数2,......,参数n),并且使含有this(参数1,参数2,......,参数n)方法的构造方法形成一个循环,会导致程序出现死循环。
代码示例
三、在内部类或匿名类中使用this时,代表内部类或匿名类本身。如果想在内部类或匿名类中使用外部类的方法或者属性,则必须在前面加上外部类的类名。
格式:外部类类名.this.方法名()。
代码示例
注:this不能在使用static修饰的方法中使用。static修饰的方法为静态方法或类方法,在类加载时就存在了,this关键字代表本类当前对象的引用,需要对类实例化(创建对象时)才在内存中产生。static修饰的方法为类和所有的本类对象共享,但是在没有对象的时候也可以使用类调用,所以this不能在使用static修饰的方法中使用。