this 是什么?
在Java中 this 关键字的作用和其词义接近
- 在方法内部使用,即这个方法所属对象的引用
- 在构造器内部使用,表示改构造器正在初始化对象
this表示当前对象,可以调用类的属性,方法,构造器
public class person { public person(int age,String name) { this.age = age; //this.age表示实参,age表示形参 this.name = name; } int age; String name; public void setName(String name) { this.name = name; } public void setName1(String name) { this.setName(name); //调用 setName 函数 括号里的name是 setName1(name)的形参 } public void showInfo() { System.out.println("姓名"+this.name);//这个this.name是类里面定义的 String name; } }
什么时候使用this关键字
在方法内需要用到调用该方法的对象时,就使用this
当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是类变量。 例如程序代码中的 this.age = age; 即使用this关键字来说明变量。
public class person { public person(int age,String name) { this.age = age; //this.age表示实参,age表示形参 this.name = name; } }
在任意方法内,如果当前类的成员变量 或成员方法,可以在其前面添加this,增强程序的阅读性。 例如 this.setName(name); 其中括号中的name是形参, this.setName() 表示调用person类中的函数。
public class person { int age; String name; public void setName(String name) { this.name = name; } public void setName1(String name) { this.setName(name); } }
this可以作为一个类中,构造器相互调用的特殊格式。
public class person { int age; String name; public person() { //无参构造 } public person(int age) { this.name = name; } public person(String name) { this(); //调用public person() this.age = age; } public person(int age,String name) { this(1);//调用public person(int age) this.age = age; this.name = name; } }
注意:
- 使用this( ) 必须放在构造器首行!
- 使用this调用本类中其他的构造器,保证至少有一个构造器是不使用this的,即不能自己调用自己。