javaSE-面向对象-this关键字

this关键字

特点:this代表其所在函数所属对象的引用。
换言之:this代本类对象的引用。

什么时候使用this关键字呢?
当在函数内需要用到调用该函数的对象时,就用this。
例程。

this用法一

class Person {
	private String name;
	private int age;

	Person() {

	}

	/*
	 * this:代表的是对象。其实就一个对象的引用。 它代表哪个对象呢? 哪个对象调用了this所在的函数,this就代表哪个对象。
	 * 
	 * this的使用之一:当成员变量和局部变量同名时,可以用this来区分。
	 */

	Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	void speak() {
		System.out.println("name=" + this.name + ",age=" + this.age);
	}

	void show() {
		this.speak();
	}
}

class ThisDemo {
	public static void main(String[] args) {
		Person p = new Person("小明", 24);
		Person p1 = new Person("旺财", 28);
		p.speak();
		p1.speak();

		p.show();
	}
}

javaSE-面向对象-this关键字_第1张图片

this第二个用法

class Person
{
	private String name;
	private int age;

	Person()
	{
	
	}

	/*
	this:代表的是对象。其实就一个对象的引用。
		 它代表哪个对象呢?
		 哪个对象调用了this所在的函数,this就代表哪个对象。

	this的使用之一:当成员变量和局部变量同名时,可以用this来区分。
	this的使用之二:使用this(参数列表)的方式就可以实现构造函数之间的调用。
	注意:构造函数之间调用时,this语句只能定义在构造函数的第一行。


	*/
	Person(String name)
	{
		this.name = name;
	}

	Person(String name,int age)
	{
		this(name);//必须是第一行。为什么呢?因为初始化动作必须先执行。
//		this.name = name;
		this.age = age;
	}
	void show()
	{
		this.speak();
	}
	void speak()
	{}

}


class ThisDemo2 
{
	public static void main(String[] args) 
	{
		Person p = new Person("小明",24);
		Person p1 = new Person("旺财",28);
	}
}

用法三


class Person
{
	private int age;
	Person(int age)
	{
		this.age = age;
	}

	/*
	定义一个功能。用于比较。两个人是否是同龄人。
	明确1:结果:boolean
	明确2:参数: 一个,Person

	当功能内部使用到了本类对象时,用this表示。

	*/
	public boolean compare(Person p)
	{
		/*
		if(this.age==p.age)//
			return true;
		else
			return false;
		*/
		return this.age == p.age;
	}
}

class ThisDemo3 
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
		Person p1 = new Person(23);
		Person p2 = new Person(35);
		p1.compare(p2);

	}
}


你可能感兴趣的:(javaSE)