this关键字、复习

一、今天干了什么

1.this关键字的使用

(形参名和属性名重名时使用)

作用:

可以用来修饰、调用:属性、方法、构造器

 

this修饰属性和方法时,理解为:当前对象或当前正在创造的对象

 

//定义一个Person类
class Person() { private String name; private int age; public void setName(String name) { this.name = name;      //this的使用,第一个name是属性,第二个name是形参 } public String getName() { return name; } public void setAge(int age) { this.age = age;        //this的使用 } public int getAge() { return age; } }

在类的方法/构造器中,我们可以使用“this.方法”或“this.属性”的方式调用当前对象/正在创建的对象的方法和属性,但是通常情况下省略this.

特殊情况下,如方法的形参和类的属性重名时,我们必须显式地使用“this.变量”的方式,表明此变量为属性,而非形参

//构造器
public Person(String name, int age)
{
    this.name = name;
this.age = age; }
public Person()
{

}

this 调用构造器(在构造器中调用构造器):

通过使用“this.(形参表)”的方式来调用本类中指定的其他构造器, 不能通过这种方式调用自己

 

注意:

(1)如果一个类中有n个构造器,则,最多有n-1个构造器中使用了“this.(形参表)”;

(2)“this.(形参表)”必须声明在当前构造器的首行;

(3)构造器内部,最多只能声明一个“this.(形参表)”,用来调用其他构造器。

public Person()                     //构造器(1)
{
    
            //写入Person初始化时需要考虑的情况:1、2、3、4……
}
public Person(int age)                  //构造器(2)
{
this();                          //调用空参的构造器(1)
    this.age = age;
}
public Person(String name, int age)         // 构造器(3)
{
    this(age);                      //调用形参为age的构造器(2)
    this.name = name;
        //this.age = age;    这一条代码可以注释掉,因为使用this(age)的时候已经将该值赋值给当前正在构造对象的age变量!
}

2.复习了面向对象已学的知识点