【java】this用法

this代表当前类的引用对象:哪个对象调用方法,该方法内部的this就代表那个对象
this关键字主要有两三个应用:
(1)this调用本类中的属性,也就是类中的成员变量;
class People
{
	private int age;
	private String name;
	People(String name,int age)
	{
		/*
		错误写法,实际就是x=x;改变的是局部变量的值。因为赋值是会先寻找局部变量,若局部变量没有,才会找成员变量
		name=name;
		age=age;
		*/
		//this是区分局部变量和成员变量同名问题,this代表所在函数所属对象的引用。简单理解: 哪个对象调用this所在的函数,this就代表这个对象
		this.name=name;
		this.age=age;
	}

	public void speak()
	{
		System.out.println("myname is "+name+", age is "+age);
	}
		
}

class  PeopleDemo
{
	public static void main(String[] args) 
	{
		People p2=new People("zhang san",18);
		p2.speak();
	
	}
}
(2)定义类中的函数时,函数内部要用到调用此函数的对象时,可以用this来表示这个对象。但凡定义本类内部功能时,使用了本类对象,都能用this表示
//定义一个比较年龄是否相同的功能
public boolean compare(Person p1)
{
	//compare功能用到了本类的对象,需要本类对象和其他对象进行比较
	return this.age==p1.age;
}

(3)this()用在本类中构造函数间相互调用,定义时要放在构造方法的第一行,因为初始化要先执行。
class People
{
	private int age;
	private String name;
	
	People()//构造函数1
	{
		this("lisi",10);//调用了构造函数2
	}

	People(String name,int age)//构造函数2
	{
		
		this.name=name;
		this.age=age;
	}

	public void speak()
	{
		System.out.println("myname is "+name+", age is "+age);
	}		
}


class  PeopleDemo
{
	public static void main(String[] args) 
	{
		People p2=new People();
		p2.speak();
	
	}
}

  

原文地址:https://www.cnblogs.com/paulwinflo/p/7885140.html