12.黑马程序员-this、super关键字

来源:互联网 发布:绘声绘影软件 编辑:程序博客网 时间:2024/06/06 04:22

------- android培训、java培训、期待与您交流! ----------

    1.this
  • 是用于区分局部变量和成员变量同名的情况。
  • this:代表本类的对象,到底代表哪一个对象呢?代表this所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
  • this的应用:
    • 当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
  • 在构造函数间调用
    • this语句,不能用于普通函数中,只能用于构造函数之间互相调用。
    • this语句只能定义在构造函数的第一行,因为初始化要先执行。意思是构造方法中this(age)要放在第一行,this.age放在第一行会导致 this(age)不能初始化。
      • 例如person p = new person("lisi",30)
      • person的构造函数
person(String name,int age)//初始化name,age{this(name);//初始化name,这时候会调用本对象的person(String name)构造方法this.age=age;//}person(String name){this.name=name;}person(int age){
this.int=int;} 

    2.super

  • 对于super,《The Java Programming Language》上这样说:In field access and method invocation, super acts as a reference to the current object as an instance of its superclass.可以理解为在需要访问the hidden field和进行父类方法调用的时候,super表现为指向作为父类的一个实例的当前对象的一个引用
  • java是解释性的语言,因此this和super不应该是地址。理解为引用可能更自然些
  • this 表示当前类的对象,super 表示对父类的某个构造器的调用

  • this是一个对象的引用,而super仅仅是一个指示编译器调用超类方法的特有的关键字,这里一定要记住!super不是一个引用,只是一个关键字!很多人犯的错误。

  • super只是编译时期的关键字。super是编译才有用的,是用来指导编译器的。
  • 你可以:
    Object ojb = this;
    但无法:
    Object ojb = super;

原创粉丝点击