一、this关键字
/*
this关键字:看上去,是用于区分局部变量和成员变量同名的情况。
this为什么可以解决这个问题?
this到底代表的是什么呢?
this的特点:
this代表的是本类的对象,到底代表那一个呢?
this代表他所在函数所属对象的引用。
也就是那个对象在调用this所在的函数,this就代表那个对象。
this的应用:
当定义类中的函数时,该函数内部要用到调用该函数的对象时,这时this来表示这个对象,
但凡本类函数内部使用了本类对象,都用this表示。
*/
class Person
{
private String name;
private int age;
Person(int age)
{
this.age=age;//谁调用this代表谁,这里代表p1
}
Person(String name)//为了让变量名有意义,将变量名n改成name但是输出结果为null.
{
this.name=name;
}
Person (String name,int age)
{
this (name);
//构造函数中的函数调用。只能放在构造函数的第一行。因为初始化要先执行。
//这个this调用的是上面的函数,代表p(name)
// this.name = name;
this.age = age;
}
public void speak()
{
System.out.println("name="+name+",,age="+age);
}
/*
需求:给人定义一个用于比较年龄是否相同的功能,也就是是否是同龄人。
*/
public boolean compare (Person p)//返回一个布尔型的数据
{
return this.age==p.age;//谁调用代表谁,这里代表p1
}
}
class gzhs2
{
public static void main(String[] args)
{
// Person p =new Person("赵四");
// Person p1 =new Person("刘能");
// p.speak();
// p1.speak();
Person p1 = new Person(20);
Person p2 = new Person(22);
boolean d = p1.compare(p2);
System.out.println(d);
Person p = new Person ("赵四");
p.speak();
test t = new test ("赵四");
}
}
二、this关键字的应用
三、 this关键字在构造函数间的调用
构造函数中的函数调用。只能放在构造函数的第一行。因为初始化要先执行,当
这个this调用的是上面的函数,代表p(name)
注意不要来回调用,避免出现死循环。
this()只能用在构造函数间,不能用在不同函数中。
使用场景:
只暴露一个构造函数提供给客户使用,隐藏构造函数内的其他初始化值。下图只调用了Person(String name,int age)这个构造函数。