1.**super的两种用法**
在构造方法中,可以使用this或super调用其他的构造方法
super()
作用:调用父类的构造器
只能出现在子类的构造器中,且必须是第一行
super()中的参数,决定了调用父类哪个构造器
如果子类构造器中没有出现super,那么编译器会默认加上super(),即调用父类的空构造器,如果父类没有空构造器,编译器提示错误。
name = "子类名字";
super.name = "父类的名字";
System.out.println(name);//使用super.name显示调用父类的属性
//如果不加super,那么打印得失子类的name属性
**this三种用法**
**方法一定有小括号。没有参数小括号不能省略。**
![*](file:///C:\Users\ADMINI~1\AppData\Local\Temp\art190F.tmp)this()
![*](file:///C:\Users\ADMINI~1\AppData\Local\Temp\art1910.tmp)作用:调用本类的构造器
![*](file:///C:\Users\ADMINI~1\AppData\Local\Temp\art1911.tmp)只能写在构造器的第一行、
![*](file:///C:\Users\ADMINI~1\AppData\Local\Temp\art4282.tmp)在同一个构造器中super()和this()不能同时出现
**this第二个用法**
当一个成员方法中(非静态方法中),局部变量和成员变量同名的时候,局部变量会屏蔽成员变量,我们需要使用this.成员变量 显示的调用成员变量。
public class Student{
private int a;//成员变量a
public void setA(int a)//这个int a是局部变量和成员变量a同名,在方法setA中,局部变量a会屏蔽成员变量a
{
a = a;//此时两个a都是局部变量。
}
}
public void setName(String name) {
this.name = name;
}
java编程规范固定,成员方法引用成员变量,一定加this.name
**this的第三种用法,是this代表当前对象的引用,用来做实参**