Java this和super关键字

this

  • 当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)
  • 调用本类中的非构造方法,this可省略
  • 把自己当作参数传递
  • 有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名
  • 在构造函数中,通过this可以调用同一类中别的构造函数。值得注意的是:
      1:在构造调用另一个构造函数,调用动作必须置于最起始的位置
      2:不能在构造函数以外的任何函数内调用构造函数
      3:在一个构造函数内只能调用一个构造函数

super
表示对某个类的父类的引用,第一钟用来访问被子类隐藏的父类成员方法或属性,前提是,只能调用子类能继承的属性和方法,private是不行的,子类无法继承父类的构造方法,只能通过super()调用。第二种是可以调用父类的构造函数。必须是子类构造方法的第一句。按继承关系,构造方法是从定向下进行调用的,如果子类没有构造方法,则它默认调用父类无参的构造方法,如果父类中没有无参数的构造方法,则将产生错误。如果子类有构造方法,那么创建子类的对象时,先执行父类的构造方法,再执行子类的构造方法。如果子类有构造方法,但子类的构造方法中没有super关键字,则相同默认执行该构造方法时会产生super代码,即该构造方法会调用父类无参数的构造方法。Java语言中规定当一个类中含有一个或多个有参构造方法时,系统不提供默认的构造方法,即不含参数的构造方法,所以当父类中定义了多个有参数的构造方法时,应考虑写一个无参的构造方法,以防子类省略super关键字出现错误

----注,同意构造方法内,super()和this()方法不能同时存在,但super()方法和this.属性能同时存在,换之亦可

(一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
  答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值