先看下面的例子:
public class person {
int age = -1;
String name = "unknow";
public person() {
}
public person(String _name, int _age) // 构造方法2
{
name = _name;
age = _age;
}
public person(String _name) // 构造方法1
{
name = _name;
}
public void fun1() {
System.out.println(name);
}
public void fun2() {
person a2 = new person("a2");
a2.fun1();
this.fun1();
}
public static void main(String[] args) {
person a1 = new person("a1");
a1.fun2();
}
}
运行结果:
通过这个例子可以看出:
this表示的是对象a1,所以this表示的是本类,使用this可以调用同类的其他对象。
注:this.fun1();这里的可以省略,其实this就相当于所在的那个对象,所以在这儿可以省略,当省略是默认调用本类,但有的地方不能省略。比如:
在构造函数
public person(String name)
{
this.name=name;
}
这里的this就不能省略,因为名称相同。
还有一种情况,假设上面的构造方法2要调用构造方法1
public person(String _name,int _age) //构造方法2
{
this(name);
age=_age;
}