我也知道 哪个对象在调用this所在的函数,this就代表哪个对象。我在看this 视频的时候发现
Person(String name)
{
name = name;
// 加上这个 不管是不是name= this.name 还是 this.name System.out.println("A:name="+name+",,age="+age);都能调用打印出来的lisi
}
之后发现 这里面隐藏有this System.out.println("A:name="+name+",,age="+age);等效于 System.out.println("name="+this.name+"...age="+this.age);
那什么时候判断到底什么情况下 有没有this呢?
Person(String name)
{
name = name; //和this.name=name;这边效果就不一样了
}
class Person
{
private String name;
private int age;
Person()
{
System.out.println("person code run"); //构造代码块,
//cry();//
}
Person(String name)
{
name = name;
//System.out.println("A:name="+name+",,age="+age); 加上这句话
//而主函数不调用speak就会有同样效果
}
public void speak()
{
System.out.println("name="+name+",,age="+age);
}
Person(String n,int a)
{
age = a;
name = n;
//System.out.println("C:name="+name+",,age="+age);
}
}
class Test09
{
public static void main(String[] args)
{
Person p =new Person("lisi");
Person p2 =new Person("wangwu",15);
Person p3 =new Person("zhangsan",16);
p.speak();
p2.speak();
p3.speak();
}
} |