
package com.atguigu.java2;
/
  this关键字的使用:
   
  1.this可以用来修饰、调用:属性、方法、构造器
   
  2.this调用属性和方法:
    this理解为:当前对象 或 当前正在创建的对象
   
   2.1 在类的构造器中,我们可以使用 “this.属性” 或  “this.方法” 的方式,调用当前对象的属性和方法。
  但是,通常情况下,我们都省略”this.”  
  特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用”this.变量”的方式,
   表明此变量是属性,而非形参
   
   
   2.2 在类的方法中,我们可以使用 “this.属性” 或  “this.方法” 的方式,调用当前正在创建的对象的属性和方法。
  但是,通常情况下,我们都省略”this.”  
  特殊情况下,如果构造器的形参和类的属性同名时,我们必须显式的使用”this.变量”的方式,
   表明此变量是属性,而非形参
   
   
  3.this调用构造器
       ①我们在类的构造器中,可以显式的使用”this(形参列表)”方式,调用本类中指定的其他            构造器
       ②构造器中不能通过”this(形参列表)”方式调用自己
       ③如果一个类中有n个构造器,则最多有n-1个构造器中使用了”this(形参列表)”
       ④规定:”this(形参列表)”必须声明在当前构造器的第一行
       ⑤构造器内部最多只能声明一个”this(形参列表)”,用来调用其他构造器
 /
public class PersonTest {
    public static void main(String[] args) {
  Person p = new Person();
 
  p.setAge(1);
  System.out.println(p.getAge());
    }
}
class Person{
 
    //属性
    private String name;
    private int age;
 
 
    //构造器
    public Person(){  
    }
 
    public Person(String name){
  this.name = name;
    }
 
    public Person(int age){
  this(“name”);//this调用构造器
  this.age = age;  
    }
 
    public Person(String name,int age){
  this(age);//this调用构造器
  this.name = name;
  this.age = age;  
    }
 
 
    //方法
    public void steName(String name){
  this.name = name;
    }
 
    public String getNmae(){
  return name;
    }
 
    public void setAge(int age){
  this.age = age;
    }
 
    public int getAge(){
  return age;
    }
}
*
this(形参列表):本类重载的其他的构造器
super(形参列表):调用父类中指定的构造器
