Java中this与super

调用类中变量的写法实际上应该是:对象名.变量名

  1. this代表调用该成员的对象,通常对象名被省略,即省略了this.但是在有同名变量参与时不可省略。如下面的情形:

    1
    2
    3
    4
    public void setNum(String num)
    {
    this.num = num;
    }
  2. 当在同一个类中的一个构造函数中调用另一个构造函数时,就可以使用this来直接调用。但是在使用时,含有this的这句话必须放在代码块的第一行。如下面的情形:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Time(long totaltime)//以特定时间(ms)构造time对象的构造方法
    {

    this(totaltime / 1000, totaltime / 60000, totaltime / 3600000);//调用以特定时,分,秒为参数的构造方法,传入转化后的流失时间
    }

    public Time(long totalsecond, long totalminute, long totalhour)
    {

    /*将已流失的时间转化为当前的时间*/
    currsecond = totalsecond % 60;
    currminute = totalminute % 60;
    currhour = totalhour % 24;
    }
  3. super表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。super的使用方法有三种:

  • 调用直接父类的构造方法,其使用形式如下:
    super(参数)
    另外,当一个子类的构造方法中没有super的任何形式的时候,系统就会默认在子类的构造方法中的第一行加上一句空参数的super();也就是说,只要子类有构造方法,那么这个构造方法里必然对父类的构造方法进行了调用,要么是默认的隐藏的super();要么是编程者定义的super(其他参数);
  • 调用直接父类中被覆盖的成员方法,其使用形式如下:
    super.成员方法(参数)
  • 访问直接父类隐藏的数据成员,其使用形式如下:
    super.数据成员

(本文系作者原创,转载请注明出处)