this那点事

来源:互联网 发布:深入浅出node.js完整版 编辑:程序博客网 时间:2024/06/05 08:50

1、this?java中的this用处可是多多啊。

答:java大神用this代指那么多,真是牛掰。思想届的大牛啊!!!

2、用于调用本类中的构造方法

public class ThisTest {int a;int b;ThisTest() {super();}ThisTest(int a, int b) {this();   //调用当前类无参的构造方法,只能在第一行哦this.a = a; // 这里this指当前对象,因实例变量与构造方法的局部变量同名,加上this得以区分, this.a指的是实例变量athis.b = b;}}

3、用于区分同名的实例变量与局部变量

public class ThisTest {int a;int b;public void test(int a, int b) {this.a = a; this.b = b;}}

4、用于调用本类中的实例方法(其实不加都行,但你要知道)

public class ThisTest {public void test(int a, int b) {this.walkOn(); //不加this可以啊}public void walkOn() {}}


5、内部类中需要传入外部类对象时,用类名加this代指外部类(类名)的对象

private class MyMainHandler extends Handler {          @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            if (msg.what == 0x111) {                int score = msg.getData().getInt("score");                mGameView.getTimer().cancel();                showPanel(MainActivity.this, score);  //这里MainActivity是最外层的类,我们要的就是MainActivity的对象            }                                         //只传this,代表的就是当前内部类的对象了(MyMainHandler)        }    }


6、还有用在返回当前实例对象上,这个也是常见用的方法,所以经常看到这样的调用 p.testA().walk() ,其实testA()的返回值昵就是p哈

class OverloadTest {OverloadTest() {super();}public OverloadTest walk() { System.out.println("返回实例对象本身");return this;  //看到没,调用这个实例方法后,又把你当前的实例对象给你了(当然传递的引用啦)}}


7、先到这里吧,想到什么再补充吧!




0 0
原创粉丝点击