关键字this与super

来源:互联网 发布:网络教研总结 编辑:程序博客网 时间:2024/05/22 10:51

(一)this是一个对象的引用,而这个引用指向的就是该对象本身。(指向自身的指针)

(二)new一个新的对象时,只会在堆内存空间生成该对象的成员变量,而类的方法仅有一份,保存在代码区,所以在使用类的方法时,正是通过this来获取该对象的方法。

(三)一般定义在类的方法中,可以解决方法中的参数和类中的成员变量重名问题。



(四)this是当前对象的引用,super是当前对象父类的引用

(五)继承中的构造方法,必须先用super调用父类的构造方法,再用this调用本类的构造方法,(若子类的构造方法中没有手动写super构造方法,则由系统默认调用父类无参数构造方法,此时父类必须有一个无参数的构造方法)

(六)如果使用super调用父类构造方法,该语句必须在子类构造方法中第一行

(七)调用父类构造函数,直接super(int id,int age),调用父类方法或者成员变量,super.id,或super.display()



class Person{int id;int age;Person(int id,int age){this.id = id;    //前一个id是类中的成员变量,当new一个新的对象时,该id变量是在堆内存,而后一个id是形参,在栈内存this.age = age;}void display(){ System.out.println(“my id is ”+ id +",my age is "+ age);}}class Student extends Person{    public String school;    Student(int id,int age){    this(id,age,"xd");                 //深入理解this,构造函数传入id,age,调用本类另一个构造函数}              //并将id,age,传入,并默认school为xd;Student(int id,int age,String school){super(id,age);               //调用父类构造函数</span>this.school = school;  //另一个参数传给子类才具有的成员变量,完成子类的初始化  }}Person person = new Person();Student student = new Student();




0 0
原创粉丝点击