[java学习笔记]java语言核心----面向对象之this关键字

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

一.this关键字体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别;在构造函数中调用其它构造函数

原理:

        代表的是当前对象。

        this就是所在函数的所属对象的引用。

        简单说,哪个对象调用了this关键字所在的函数,this就代表哪个对象。

1.区别局部变量和成员变量内存图解:

说明:

程序执行到main函数时,main函数进入栈内存中的方法区,执行到Person p = new Person(“旺财”);时,在main方法区中创建一个Person类型的引用变量p接着,在堆内存中创建一个Person类的实例,并初始化,然后调用构造函数,在栈内存中创建一个Person(String name)函数的方法区,对象一调用构造函数,构造函数的方法区中就会有一个this引用指向该对象执行Person(String name)中的代码,把this所指向的对象进行初始化,执行完成后,Person方法区出栈给栈中main方法区中的p赋值,使之指向this所指向的对象执行speak方法,speak方法进入方法区,打印的是this所指向对象的name和age2.在构造函数中的使用详见 另一篇博客[java学习笔记]java语言核心----面向对象之构造函数 中的标题4:构造函数的相互调用

3.this的应用只要在本类中使用本类的对象,一般都使用this关键字

如:在Person类中增加一个比较年龄的方法

代码:

classPerson{PRivateintage;privateString name;//此处省略get和set方法Person(String name,intage){this.name =name;

thia.age=age;

}//判断一个Person对象的年龄是否和调用此方法的对象的年龄相同publicbooleancampare(Person p){returnthis.getAge()==p.getAge();

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航