this语句只能用于构造函数之间,不能用于一般函数中。
this关键字:看上去,是用于区分成员变量和局部变量同名的情况。
(1)如果成员变量和局部变量同名,那么在函数中只识别成员变量中的。
this:就代表本类的对象,但是到底代表哪一个呢?
this就代表它所在函数所属对象的引用。
简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
this关键字的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
但凡本类功能内部使用了本类对象,都用this来表示。
**********************************************
(2)this“语句”:用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行,理论根据是:先初始化再改变变量值。因为初始化要先执行。
this关键字:看上去,是用于区分成员变量和局部变量同名的情况。
(1)如果成员变量和局部变量同名,那么在函数中只识别成员变量中的。
this:就代表本类的对象,但是到底代表哪一个呢?
this就代表它所在函数所属对象的引用。
简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
this关键字的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
但凡本类功能内部使用了本类对象,都用this来表示。
**********************************************
(2)this“语句”:用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行,理论根据是:先初始化再改变变量值。因为初始化要先执行。
class Person
{
private String name;
private int age;
Person(String name){
this.name=name;
}
Person(String name,int age){
this(name);//用this语句来代替this.name=name,其实this(name)调用的是上一个构造函数;
this.age=age;
}
public void show()
{
System.out.println("name:"+name+",age:"+age);
}
//比较两个人是否同龄
public boolean compare(Person p){
return this.age==p.age;
}
}
class PersonDemo3
{
public static void main(String[] args){
Person p1=new Person("zhangsan");
Person p2=new Person("lisi",34);
Person p3=new Person("wangwu",20);
boolean flag=p2.compare(p3);
if(flag){
System.out.println("yes");
}
else{
System.out.println("no");
}
//p1.show();
//p2.show();
}
}