1.this的用法

this 关键字

1.作用范围:本类(不是实例化的对象,而是正在写的对象)

2.作用效果:(1.)表示当前对象,简单来说就是来区分哪个是形参那个是成员变量,例:


public void show(String name){
this.name=name;
//第一个name为成员变量,第二个为形参;
}

this 和 super的区别_调用方法

(2.)访问属性和调用方法(如果是继承关系,这个类中无这个属性则会从父类中找,方法是用super)


public class sudent{ 
int age;
public student(){//无参构造方法
System.out.println("无参");
}
public student(int age){
this();//调用无参方法
//相反的无参中也可以调用有参
//用this()来调用构造方法,只能用于构造方法,并且
//要放在构造犯法第一行
this.age=age;
}
public void work(){
this.work2();//调用方法
}
public void work2(){
System.out.println("");
}
public int getAge(){
return this.age;//访问属性
}
}

this 和 super的区别_调用方法_02

2.super的用法

super关键字:(必须为继承关系)

1.作用范围:父类。

2.作用效果:访问父类的属性与方法(与this类似)


public class Dad{  
public Dad(){
System.out.println("这是父类");
}
public void show(){
System.out.println("这是show方法");
}
}

this 和 super的区别_调用方法_03


public class Son extends Dad{ 
public Son(){
super();//这个必须放在构造方法第一行,如果构造方法有参,super(参数);
System.out.println("这是子类");
}
public void Show(){//这里没重写super.show();//引用父类中的show方法。
System.out.println("这是Show方法");
}
}

this 和 super的区别_构造方法_04

补:this和super大部分情况不能用于静态中,super也可以用来访问父类的同名方法