版主看到,请帮忙解决一下
请看一下这个程序public class Person6
{
static int count=0;
protected String name;
protected int age;
public Person6(String n1,int a1)
{
name = n1;
age = a1;
this.count++; //超类对象计数
}
public String toString()
{
return this.name+", "+this.age;
}
public void print()
{
System.out.println("本类名="+this.getClass().getName()+" "+
"超类名="+this.getClass().getSuperclass().getName()+" ");
System.out.print("Person6.count="+this.count+" ");
System.out.print("Student6.count="+Student6.count+" ");
Object s1=this;
if (s1 instanceof Person6) //判断对象属于哪个类
System.out.println(s1.toString()+"是Person6类对象。");
if (s1 instanceof Student6)
System.out.println(s1.toString()+"是Student6类对象。");
}
}
class Student6 extends Person6
{
static int count=0; //隐藏了超类的count
protected String dept;
protected Student6(String n1,int a1,String d1)
{
super(n1,a1); //调用超类的构造方法
dept = d1;
this.count++; //子类对象计数
}
public String toString() //覆盖超类的同名方法
{
return super.toString() +", " + dept; //调用超类的同名方法
}
public void print()
{
super.print(); //调用超类的方法
System.out.println("super.count = "+super.count); //引用超类变量
System.out.println("this.count = "+this.count);
}
public static void main(String args[])
{
Person6 p1 = new Person6("王小明",21) ;
p1.print();
Student6 s1 = new Student6("陈小瑞",19,"计算机系");
s1.print();
}
}
当调用完s1.print()后person6中的System.out.print("Person6.count="+this.count+" ");中的this为什么是指向person6这个类,而System.out.println("本类名="+this.getClass().getName()+" "+
"超类名="+this.getClass().getSuperclass().getName()+" ");和 Object s1=this;
中的this却是指向student5这个类,我想问一下哪位大哥,这里的几个this 有何不同