您的位置:首页 > 其它

this 的用法

2015-10-06 08:12 253 查看
<span style="font-family:FangSong_GB2312;font-size:18px;">package du.cn.TextThis;
import org.junit.Test;

/*
* 区分同名变量,this代表这个对象,调用的自然是这个对象的成员变量
* 而非方法中的局部变量
*
*/
class TestTvariable {

String name;
int money;
boolean sex;

//一、测试变量

TestTvariable(String name) {	//传递的参数和TestTvariable类中的name重名

this.name = "类变量name:"+name;	//参数name掩盖了类的字段name,用this可以区分
System.out.println(this.name);
System.out.println("局部变量"+name);

}

//二、构造方法间的相互调用

TestTvariable(String name, int money) {

this(name);			//在此构造方法中调用上一个实现的构造方法,无需重复写代码,
//<span style="color:#3f7f5f;">构造方法调用构造器,必须位于其第一行,构造方法只能调</span></span><span style="font-family:FangSong_GB2312;font-size:18px;color:#3f7f5f;">用一个且仅一次构造器!</span><span style="font-family:FangSong_GB2312;font-size:18px;">
this.money = money;
System.out.println(money);

}

/*注意事项:
*
*被static修饰的方法没有this指针。
*因为被static修饰的方法是公共的,不能说属于哪个具体的对象的
*
*/

/*
* 关于返回类自身的引用,Thing in Java有个很经典的例子,
*	通过this 这个关键字返回自身这个对象然后在一条语句里面实现多次的操作
*
*/
public TestTvariable increase(){

money++;
return this;		//返回自身

}

public void myPrint(){

System.out.println(money);

}
}
</span>
另建一个类进行测试:
package du.cn.TextThis;

import org.junit.Test;

public class aaaa {

@Test

public void testMethod(){

TestTvariable clazz1 = new TestTvariable("李刚");
TestTvariable clazz2 = new TestTvariable("李刚的儿子",100);
clazz2.increase().increase().increase().myPrint();

}

}

输出结果:

   类name:李刚

   李刚

   类name:李刚的儿子

   李刚的儿子

   100

   103

值得注意的是:

   1、在构造调用另一个构造函数,调用动作必须置于最起始的位置。

   2、不能在构造函数以外的任何函数内调用构造函数。

   3、在一个构造函数内只能调用一个构造函数。

   4、当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则外部类名.this.方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  this的使用