新手求问java中的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();
}
}

在setName中,能用this.name是因为在方法中一开始引入了变量name(不知道这么说对不对),可是在getName中,为什么能用this.name?

new只出现在构造方法之前用来生成对象
即:Student a = new Student();
this
1、当全局变量跟局部变量重名时,表示使用全局变量(此时this指代本类对象)
例有一类class A{
String name;
void setName(String name){
this.name = name;
}
}
2、构造方法相互调用,此时this指代本类类名
注意this只能放在构造方法第一句
如class B{
String name;
B(){
this("name");//会自动调用带String参数的构造方法
}
B(String name){
this.name = name;
}
}
先说new,new就是创建个对象,比如你有个类A,如果想使用他,就需要 A a=new A();
再说return,这个使用在方法里的,遇到return就是方法结束了,不过不是所有的方法里都需
要return,使用return一般有两种环境:1是方法有返回值,如 public String aa()
{ return "aaa";},2就是方法不需要返回值也可以使用return ,如public void aa(){
return;}第二种情况一般用在循环里面

this说的不好理解;
this就是说这个类的当前这个对象,也就是构造方法产生的对象。
你new对象或者调用方法时,当碰到有this时,this就代表他自己。
另外,涉及到静态的东西,就不会用this,因为静态的东西是一个类所有对象共用的东西,
不归某一个对象;
所以你可以在eclipse中编码时看到,静态方法你用this.staticMethod()会报警告,因为静
态方法不归这个对象,归这个类的所有实例对象。追问

不好意思,是我提问的方式有问题,我的意思是
在setName中,我重新声明了一次name变量,让this.name=name+num,但是这个应该只存在于setName中才对啊。
但是在getName中使用this.name,应该this.name=name才对,但是在运行的时候,getName中的this.name也等于name+num了,为什么呢?

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜