二、Java面向对象(7)_封装思想——this关键字

2018-04-30

 

this关键字

什么是this:

  表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。

 

this主要存在于两个地方:

  1)构造函数:此时this表示调用当前创建的对象

  2)成员方法中:对象a调用this所在的方法,此时this就表示对象a

当一个对象创建以后,JVM会自动分配一个引用当前对象的this

内存分析:

  二、Java面向对象(7)_封装思想——this关键字

this的使用:

1)使用this区分同名变量

  成员变量与局部变量(参数),重名时,希望在方法内部调用成员变量

 1 class Person {
 2     private int age = 10;
 3     public Person(){
 4     System.out.println("初始化年龄:"+age);
 5 }
 6     public int GetAge(int age){
 7         this.age = age;
 8         return this.age;
 9     }
10 }
11  
12 public class test1 {
13     public static void main(String[] args) {
14         Person Harry = new Person();
15         System.out.println("Harry's age is "+Harry.GetAge(12));
16     }
17 }  

运行结果:

初始化年龄:10
Harry's age is 12

可以看到,这里age是GetAge成员方法的形参,this.age是Person类的成员变量。

  

2)作为方法名来初始化对象(构造器重载的方法)

  也就是相当于调用本类的其它构造方法,它必须作为构造方法的第一句。

3)作为参数传递

  需要在某些完全分离的类中调用一个方法,并将当前对象的一个引用作为参数传递时。

参考:

https://www.cnblogs.com/hasse/p/5023392.html(this和super的用法总结)

http://www.weixueyuan.net/view/5988.html