有时候会遇到这种情况,我们全面的访问当前对象,而不是访问某一个个别的实例对象,我们也可以使用this,并利用Java中的toString()方法(它能够返回一个描述这个对象的字符串)如果把任何一个对象传递到System.out.println方法中,这个方法调用这个对象的toString方法,并打印出结果字符串,所以,我们可以用如下方法System.out.println(this),来打印出任何对方法固有参数的当前状态。
this还有一个用法,就是构造函数的第一个语句,它的形式是this(参数表),这个构造函数就会调用同一个类的另一个相对的构造函数。请看下面的例子:
class UserInfo
{
public UserInfo(String name)
{
this(name,aNewSerialNumber);
}
public Userinfo(String name,int number)
{
userName=name;
userNumber=number;
}
}
如果你调用UserInfor newinfotable = new UserInfo("aaron")后,就会自动调用UserInfo(String name,int number)构造函数。
可见,熟练掌握this在Java程序设计过程中是非常重要的
2、super
在Java中,有时还会遇到子类中的成员变量或方法与超类(有时也称父类)中的成员变量或方法同名,因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量和方法就隐藏了超类的成员变量或方法,但是我们如果想要使用超类中的这个成员变量或方法,此使就需要用到super,请看下面的类。
class Country
{
String name;
void value()
{
name="China";
}
}
下面的子类中,自类的成员变量和方法隐藏了超类的成员变量name和方法value(),
class City extends Country
String name;
void value()
{
name="Beijing";
super.value();
System.out.println(name);
System.out.println(super.name);
}
为了在子类中引用超类中的成员变量name和方法value(),在代码中我们使用了super,super.name和super.value();
所以显示的结果为
Beijing
China
如果我们想要使用超类的构造函数则应当使用super(参数列表)的形式。

