21xrx.com
2024-11-05 18:46:00 Tuesday
登录
文章检索 我的文章 写文章
Java中的this和super关键字解析
2023-07-05 04:12:19 深夜i     --     --
Java this super 解析

Java中的this和super关键字是两个非常常见的关键字,它们用于在类的构造函数、成员方法和内部类中引用当前对象或父类对象。

this关键字

this关键字用于引用当前对象,主要有以下用途:

1. 调用当前对象的构造函数

在构造函数中,可以使用this关键字调用其他的构造函数,这个被调用的构造函数必须在本类中定义,并且必须放在构造函数的第一行。例如:

public class Person {

  private String name;

  private int age;

  public Person() {

    this("Tom", 18);

  }

  public Person(String name, int age)

    this.name = name;

    this.age = age;

}

上面的代码中,第一个构造函数调用了第二个构造函数,这样在不提供参数的情况下创建一个Person对象时,name和age会默认为Tom和18。

2. 区分成员变量和局部变量

如果方法中有一个局部变量和成员变量同名,就可以使用this关键字来指定操作的是成员变量。例如:

public class Person {

  private String name;

  public void setName(String name)

    this.name = name;

}

在setName方法中,this.name指的是成员变量,而name指的是方法中的局部变量。

3. 在方法中返回当前对象

可以使用this关键字在方法中返回当前对象,例如:

public class Person {

  private String name;

  public Person setName(String name)

    this.name = name;

    return this;

}

在setName方法中,使用return this返回了当前Person对象,这样可以实现链式调用。

super关键字

super关键字用于在子类中调用父类的构造函数、成员方法和成员变量,主要有以下用途:

1. 调用父类的构造函数

在子类构造函数的第一行可以使用super关键字调用父类的构造函数。例如:

public class Student extends Person {

  public Student() {

    super();

  }

}

上面的代码中,Student类继承了Person类,在构造函数中使用super关键字调用了Person类的构造函数。

2. 调用父类的成员方法和成员变量

在子类中使用super关键字可以调用父类的成员方法和成员变量,例如:

public class Student extends Person {

  public void study() {

    System.out.println(super.getName() + " is studying.");

  }

}

上面的代码中,调用了父类的getName方法。

总结

Java中的this和super关键字非常重要,可以用于实现一些特殊的功能。掌握它们的使用方法对于理解和编写Java程序都有很大的帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复