java 中this理解_Java中对this的理解

本文详细介绍了Java编程中内部类和匿名类中this关键字的使用,特别是当内部类需要调用外部类的方法和变量时,如何通过外部类的类名加this来正确引用。同时,文章还探讨了在构造函数中如何通过this调用同一类的其他构造函数,并强调了构造函数中this调用的规则和限制。
摘要由CSDN通过智能技术生成

3. 注意匿名类和内部类中的中的this

有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿 嘀杏胻his时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。如下面这个例子:

public class A {

int i = 1;

public A(){

Thread thread = new Thread(){

public void run(){

for(;;){

A.this.run();

try {

sleep(1000);

} catch(InterruptedException ie){ }

}

};//注意这里有;

thread.start();

}

public void run(){

System.out.println("i = " + i);

i++;

}

public static void main(String[] args)throws Exception {

new A();

}

}

在上面这个例子中, thread 是一个匿名类对象,在它的定义中,它的 run 函数里用到了外部类的 run 函数。这时由于函数同名,直接调用就不行了。这时有两种办法,一种就是把外部的 run 函数换一个名字,但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用外部类的类名加上 this 引用来说明要调用的是外部类的方法 run。

4.在构造函数中,通过this可以调用同一class中别的构造函数,如

public class Flower{

Flower(int petals){}

Flower(String ss){}

Flower(int petals, Sting ss){

//petals++;调用另一个构造函数的语句必须在最起始的位置

this(petals);

//this(ss);会产生错误,因为在一个构造函数中只能调用一个构造函数

}

值得注意的是:

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

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

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

22/2<12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值