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.方法。
相关文章推荐
- Javascript高级程序设计——14.面向对象与原型(1 )
- Java的this关键字
- this
- *LeetCode-Find the Duplicate Number
- 揭秘利用互联网营销的全国拍卖骗子公司 - (深圳拍卖公司)
- Matlab Error (Matrix dimensions must agree)
- 不要学习代码,要学会思考
- 持有对象:总结JAVA中的常用容器和迭代器,随机数 速查
- 数据结构实践项目——队列
- 经方败案群9月鼻炎专题第1场交流整理版
- 接口多适用类
- Servlet学习
- Linux网络配置和网络诊断命令介绍
- 今天继续码~python的文件访问~
- 关于显著性检测的思考
- Python BIF 汇总
- Spring 系列: Spring 框架简介
- LintCode "Find Peak Element II"
- Leetcode Strobogrammatic Number
- 一个计算HBase表中行数的MapReduce程序