this,super,static,final是四个常见的类的关键字,怎么样来描述类的属性和行为?
如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。static和final可以用来修饰变量,方法,类,他们有各自的特点。
1. this
this代表对象的引用(谁调用就代表谁), 必须放在非静态方法里面,this是自身的一个对象,代表对象本身, 指向对象本身的一个指针。
参考 Java关键字this
主要作用:
(1)this调用本类中的属性,也就是类中的成员变量;
Public Class Student {
String name; //定义一个成员变量name
private void SetName(String name) { //定义一个参数(局部变量)name
this.name=name; //将局部变量的值传递给成员变量
}
} // this这个关键字其代表的就是对象中的成员变量或者方法。
(2)this调用本类中的其他方法;
public class Student { //定义一个类,类的名字为student。
public Student() { //定义一个方法,名字与类相同故为构造方法
this(“Hello!”);
}
public Student(String name) { //定义一个带形式参数的构造方法
}
}
(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。
ublic Class Student {
String name; //定义一个成员变量name
private void SetName(String name) { //定义一个参数(局部变量)name
this.name=name; //将局部变量的值传递给成员变量
}
Return this
}
2. super
super主要作用:
1:主要存在于子类方法中,用于指向子类对象中父类对象。
2:访问父类的属性
3:访问父类的函数
4:访问父类的构造函数
super主要有两种用法:
1)super.成员变量/super.成员方法;
2)super(parameter1,parameter2…)
第一种用法主要用来在子类中调用父类的同名成员变量或者方法;第二种主要用在子类的构造器中显示地调用父类的构造器,要注意的是,如果是用在子类构造器中,则必须是子类构造器的第一个语句。
super是一个关键字,代表父类的存储空间标识。(可以理解为父亲的引用)
程序实例:
//父类
class FatherClass {
public i