Notifier's Blog

常遇困境,说明你在进步!
       常有压力,说明你有目标!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Java学习笔记---9.面向对象编程04-this关键字的使用

Posted on 2010-09-20 10:55  notifier  阅读(644)  评论(0编辑  收藏  举报

      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) ;
	}
}