this关键字和super关键字的用法

1.this关键字

1)说明:this关键字用于表示本类当前对象(成员变量,成员方法),当前对象不是某个new出来的实体对象,而是当前正在编辑的类,this关键字只能在本类中使用。虽然我们知道this可以调用成员变量和成员方法,但Java语言中最常规的调用方式是使用“对象.成员变量(或方法)"进行调用。

(2)在局部变量或方法参数覆盖了成员变量时,添加this关键字明确引用的是类成员还是局部变量或是方法参数。

 
  

ps:在Java语言中每实例化一次对象,都会自动调用一次构造方法。

 

public class Test05 {

public String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

//若没有关键字this,则变成this=this,这里的this指的都是局部变量,添加this后就升格为类变量

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

(3)通过this关键字可以调用成员方法或成员变量(一般省略this)

 
  
package two0116;

public class Test05 {

public String name;

private int age;

public void siHI(){

System.out.println("Hi~");

}

public void method(){

this.siHI();

siHI(); //11和12行均可

}

}

(4)仅在构造方法中访问构造方法使用this(参数1,参数2......);

 
  
public class Test05 {

public String name="zhang san";

private int age;

public Test05() {

System.out.println("我是无参构造");

}

public Test05(String name, int age) {

this();

this.name = name;

this.age = age;

System.out.println("我是有参构造");

}

public static void main(String[] args) {

new Test05("123",12);

}

}

// 结果为

// 我是无参构造

// 我是有参构造

注意事项:

(—):只能在构造方法内部用this调用构造方法,且this应放在构造方法内的第一行且只能出现一次。

(二):不能在一个类中的两个构造方法中(有参和无参构造)都用this(参数);互相调用,这样会陷入死循环。

(5)this可作为方法的返回值,例如返回图书类本类的对象

 
  
public Book getBook(){

return this; //返回Book类的本类对象

}

人类完整版

 
  
public class People {

String name;

int age;

public People() {

}

public People(String name, int age) {

this.name = name;

this.age = age;

}

public People getPeople(){

return this;

}

public void say(){

System.out.println("*****");

}

}
 
  

2.super关键字

成员变量

this.成员变量 - 访问本类成员变量

super.成员变量 -访问父类成员变量

成员方法

this.成员方法 - 访问本类成员方法

super.成员方法 -访问父类成员方法

构造方法

在构造方法内第一行 this(有参或空参) -访问本类构造方法

在子类构造方法内第一行 super(有参或空参) -访问父类构造方法

ps:this和super很像;参照着来准没错

你可能感兴趣的:(java,开发语言,后端)