this关键字是Java语言里一个比较灵活而又复杂的语法,这里和String一样,也单独罗列出来做一节.
this关键字的使用环境:
1. 可以调用本类中的方法.
这个方法可以使类里面的一般方法, 也可以使构造函数.
对于一般方法的调用,之前就已经碰到过了,比较熟悉,直接用this.function()即可.
对于在构造函数中使用this关键字有需要注意的地方.在构造函数中,使用this()语句(注意this后带括号)调用的是无参的构造函数.在构造函数中使用this()语句,this()语句必须放置在构造方法的首行, 且多个构造函数中必须至少留有一个入口,就是说至少要有一个未使用this()方法的构造函数.
这里举个例子:
class Person { // 定义类"Person"的属性 String name; int age; //定义构造函数 public Person() { //this()语句必须放置在构造函数的首行,且多个构造函数必须留有一个入口 this("张三",23); System.out.println("构造了一个新的对象!"); } public Person(String name,int age) { //如果是由构造函数为属性赋值的话,最好也是使用getter和seter方法 this.name = name; this.age = age; } public void print() { System.out.println("姓名是: "+name + ", 年龄是: "+age); } } public class OODemo03 { public static void main(String args[]) { Person p = new Person(); p.print(); } }
2. 调用当前类中的属性
这个比第一种更常见,例如在上面的程序中, this.name = name; this.age = age 都是用过this关键字来调用当前类中的属性, 实例见上面代码中重载的构造函数.
3. 可以表示当前对象
其实在第二种"调用当前类中的属性"一块中, 我们就可以把this当做是在表示当前的对象. 用this表示当前对象,谁调用了这个方法,则this就表示谁.
class Person { // 谁操作了这个方法,则this就表示是谁 public void print() { System.out.println("this表示:"+this) ; } } public class Demo08 { public static void main(String args[]) { Person p1 = new Person(); Person p2 = new Person(); p1.print() ; System.out.println(p1) ; System.out.println("-------------------------") ; p2.print() ; System.out.println(p2) ; } }
常遇困境,说明你在进步!
常有压力,说明你有目标!
作者:notifier
出处:http://www.cnblogs.com/notifier/
本文版权归作者notifier和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利!