2 qq 39898779 qq_39898779 于 2017.09.18 15:37 提问

请问在2个方法中,如果没有放入变量,为什么能用this

class Resource
{
private String name;
private int num=1;
boolean flag=false;
public synchronized void setName(String name)
{
if(flag)
{
try
{
this.wait();
}
catch (InterruptedException e)
{
}
}
this.name=name+num;
num++;
System.out.println(Thread.currentThread().getName()+"..生产.."+this.name);

    flag=true;
    this.notify();
}
public synchronized void getName()
{
    if(!flag)
    {
        try
        {
            this.wait();
        }
        catch (InterruptedException e)
        {
        }
    }
    System.out.println(Thread.currentThread().getName()+"..销售.."+this.name);
    flag=false;
    this.notify();
}

}

在上面的代码上,getName方法里为什么能用this.name?

3个回答

dujunjiehaha
dujunjiehaha   2017.09.18 15:55

this= object ,类肯定可以访问自己的变量属性啊,你的同步代码块的锁,同样是this

xjn20144206177xjn
xjn20144206177xjn   2017.09.18 16:05

this代表当前对象,当前对象当然可以访问当前对象的成员属性啦

q690080900
q690080900   2017.09.18 16:24

谁来调用这个方法 this就代表谁 this是非静态方法中默认存在的

q690080900
q690080900 就算有参数 this也不是代表传递的参数 this仅代表调用该方法的对象
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片