标签:with ext java 针对 直接 const 另一个 关键字 this
2020-10-18 ?????? longzqa@163.com ?????? stronglzq
【摘要】针对常用到的this、super关键字进行总结。this关键字用来指代当前对象,super用来指代父类对象。
this关键字用来访问当前类的内容,指代当前对象,主要有以下用法:
(1)当方法中的变量与所在类的成员变量名称相同时,用this.成员变量
表示类的成员变量。
public class Person{
private String name;
private int age;
public Person(String name){
// 局部变量name将成员变量屏蔽
this.name = name;
}
}
(2)用this调用重载构造方法,即一个构造方法调用另一个构造方法,注意必须为构造方法的第一句,并且编译器禁止在其他地方调用构造器。
public class Person{
private String name;
private int age;
// 无参构造方法1
public Person(){
System.out.println("Consructor with no parameter.");
}
// 有参构造方法2,调用无参构造1
public Person(String name, int age){
this();
this.name = name;
this.age = age;
System.out.println("Constructor with parameter name, age.")
}
}
(3)用this调用当前类的其他方法,语法为this.被调用的方法名
,但调用当前类的其他方法直接调用即可,无需使用this。
(4)this和super关键字无法在静态方法中使用。因为this指代当前对象,super指代父类对象,而静态方法属于类,只能通过类来调用,而无法通过对象来调用。
注:main()方法是静态方法,故在main()方法中无法使用this和super关键字。
与this关键字对应,super关键字用来调用父类的内容,指代父类对象。super主要有以下用法:
(1)调用父类的成员变量,语法为super.父类成员变量
。
(2)调用父类的成员方法,语法为super.父类成员方法
。
(3)子类构造方法调用父类构造方法,注意只能在构造方法中调用构造方法,并且调用语句必须放在第一句。
public class Person{
private String name;
private int age;
public Person(){
System.out.println("Superclass constructor with no parameter");
}
}
public class Teacher extends Person{
public Teacher(){
super();
System.out.println("Subclass constructor that called superclass constructor");
}
}
(4)注意this、super两个关键字不能在静态方法中使用。
标签:with ext java 针对 直接 const 另一个 关键字 this
原文地址:https://www.cnblogs.com/stronglzq/p/13835668.html