概念

this代表本类对象的一个引用对象。
构造函数中,this()必须放在第一行

形式

//name=name;
//age=age;
其实是想把Student类的局部变量name的值赋值给成员变量,相当于你想操作是这样的:
//Student.name=name;
但是你不能直接写类名,这时候就用代表本类的对象this来完成。代码变成了:
this.name=name;

练习1:当变量名相同时

当局部变量和成员变量同名时,用于区分。
如果附近有同名变量,会遵从变量的就近原则,那么怎么调用成员变量呢?
public class T {
public static void main(String[] args) {
Animal a = new Animal();
a.run("大黄");
System.out.println(a.name);
}
}
class Animal{
String name;
/*
//当局部变量的名字和成员变量不一样时简单,拿着局部变量的值直接给成员变量赋值就行了
public void run(String n)
*/
//问题来了,当局部变量和成员变量同名时呢??
public void run(String name){
//name=name;//变量的就近使用原则,这样用的都是最近的也就是一直在用局部变量的
this.name=name;//this调用成员变量
}
}

### 练习3:构造方法间的调用
~~~java
public class T {
       public static void main(String[] args) {
              Animal a = new Animal();
//           Animal a2 = new Animal("旺财");
       }
}
class Animal{
       public Animal(){
              this("来福");//调用本类中的含参构造
              System.out.println(name);
       }
       public Animal(String name){
              System.out.println(name);
       }
}

访问控制符

用来控制一个类,或者类中的成员的访问范围。
image.png

Q.E.D.


努力成就未来