求解答一下这代码里的 静态变量 count 和 this的指向 谢谢
发布网友
发布时间:2023-07-12 03:46
我来回答
共1个回答
热心网友
时间:2024-01-18 13:53
可以简单理解成
Person类里面的this指的是调用Person类的对象时候这个对象本身,
就是this.属性/方法就在这个Person类里面找
同理Student类里面的this也是调用Student类的对象时候这个对象本身
就是this.属性/方法就在这个Student类里面找
Super指这个类的父类
Super.属性/方法就在父类里面找
public static void main(String[] args) {
Person per = new Person("王永涛",23);
/*
Person per声明per为Person类对象
后半部分是调用了Person的构造方法,Person类里面的count+1
并没有涉及到子类的count,所以
Person中的count为1,子类count为0
*/
per.display();
Student stu = new Student("张小三",22,"计算机系");
/*
调用了Student的构造方法
protected Student(String n1, int a1, String d1) {
super(n1, a1);
//调用了父类的双参数构造方法,所以父类中的count先+1
dept=d1;
this.count++;
//调用了this.count这里指自身的count再+1
}
调用之后父类的count从1变成2
子类的count从0变成1
*/
stu.display();
}
追问这点我明白子类构造方法调用了父类构造方法 这时this.count指的是父类 当子类对象stu.display时调用了父类的display方法 在父类display方法当中 this.getclass()中的this 指向了子类对象 这让我纠结了