黑马程序员技术交流社区

标题: 关键字问题 [打印本页]

作者: 赵晓波    时间: 2012-1-3 08:59
标题: 关键字问题
本帖最后由 赵晓波 于 2012-1-3 12:08 编辑

this和super用法的区别?
作者: 李盈科    时间: 2012-1-3 09:21
this 调用本身对象的成员变量和方法,而super是调用父类的的成员变量和方法。
作者: 孙海亮    时间: 2012-1-3 09:28
当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用了本类对象,都用this表示。
super的使用和this的使用几乎一致。但super代表的是父类对象的引用。

作者: 想好了再写    时间: 2012-1-3 11:02
this和super可以代指本类方法和父类的方法,当你在本类的方法中想使用本类的其他方法,你就可以使用this.后面跟上你想使用的方法,也可以使用super.方法,使用本类的父类方法,在构造方法中,如果有继承关系,他会在本类的构造方法中,默认调用super()方法。来构造本类信息,如果你想使用别的父类信息,来初始化子类信息,你可以使用super对应父类的构造方法,但是必须是super的构造方法,在子类的构造方法前面。否则会抛异常的
作者: 詹英鹏    时间: 2012-1-3 11:12
本帖最后由 詹英鹏 于 2012-1-3 11:13 编辑

this变量使用在一个成员函数的内部,指向当前对

象,当前对象指的是调用当前正在执行方法的那个对象.super变量是直接指向超类的构造函数,用来引用超

类中的变量和方法.两者的使用方法:

下面我写的this和super例子你参考一下
1、this
public class People{
public String name;
public char gender;
public int age;
public double height;
public double weight;
public People(String name,char gender,int age,double height,double weight){
      this.name=name;
      this.gender=gender;
      this.age=age;
      this.height=height;
      this.weight=weight;}
}
2.super
Student(String name,int age,String school){
super(name,age);
this.school=school;}

其中,super(name,age);语句表示调用父类的构造方法,并传递相应的参数。这样的用法一般在子类构造

方法的参数多于父类构造方法的参数时使用,其目的是简化构造方法的语句体。
作者: 沈样    时间: 2012-1-3 11:36
super()是调父类的方法,必须写在方法体第一行,this是自身调用。概念不一样,如果有错误请指出
作者: 赵晓波    时间: 2012-1-3 12:09
谢谢大家,以后有不会还请教你们。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2