this
Java中经常会见到this关键字
this关键字主要有以下三个方面的用途:
1.this调用本类属性
2.this调用本类方法
3.this表示当前对象
this调用本类属性
class Person{
private String name;
private int age;
public Person(String name,int age){
name = name ;
age = age ;
}
这段代码可能很多人一眼就能看出来端倪,当参数与类中属性同名时,类中属性无法被正确赋值。
如果我们想正确的给类中属性赋值的话,就要用到this关键字。
同时也要注意,只要是在类种方法调用类中属性,一定要用this关键字调用
this调用本类方法
因为方法咱们分了构造方法和普通方法,我们这里也分类讨论一下
this调用普通方法
我们通过 this.方法名称(参数) 的形式来调用
this调用普通方法,这个方法一定是本类中的方法
虽然调用本类的不同方法不用this关键字也能调用,但是建议调用时加上this关键字,加上this关键字更加明确了方法来源就是本
类(这一点尤其在有继承关系的类中特别重要)
this调用构造方法
通过this()的方式来调用
Java中就可以通过这种形式进行构造方法的相互调用
但是使用这种方法需要注意:一个构造器中最多只能调用一个其他的构造器。并且,对其他构造器的调用动作必须放在构造器的
起始处(也就是构造器的首行),否则编译的时候将会出现错误,另外不能在构造器以外的地方以这种方式调用构造器。
public class Person{
public Person(){
}
public Person(String name){
this();//调用本类无参构造
this.name = name ;
}
public Person(String name,int age){
this(name);//调用本类有参构造
this.age = age ;
}
}
this表示当前对象
只要对象调用了本类中的方法,这个this就表示当前执行的对象
super
介绍完this其实super就很简单了
最常用的就是子类对象实例化操作的时候的super(),主要作用是子类调用父类构造方法时才使用的。
在进行覆写的操作过程之中,子类也可以使用super.方法()/super.属性明确调用父类中的方法或属性。
super和this在使用上非常的相似,但是两者最大的区别是super是子类访问父类的操作,而 this是本类的访问处理操作。
ps:父类写错写成了不累 能懂就行...