Java 25天基础-DAY 05-面向对象-this关键字

一、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 ("赵四");
    

}

}
Java 25天基础-DAY 05-面向对象-this关键字
二、this关键字的应用
Java 25天基础-DAY 05-面向对象-this关键字
三、 this关键字在构造函数间的调用

构造函数中的函数调用。只能放在构造函数的第一行。因为初始化要先执行,当
这个this调用的是上面的函数,代表p(name)
注意不要来回调用,避免出现死循环。
this()只能用在构造函数间,不能用在不同函数中。
使用场景:
只暴露一个构造函数提供给客户使用,隐藏构造函数内的其他初始化值。下图只调用了Person(String name,int age)这个构造函数。
Java 25天基础-DAY 05-面向对象-this关键字

上一篇:swap交换分区


下一篇:Docker 内部安装Nginx精简版