Java:this关键字与super关键字

声明

1)该文章部分内容整理自网上的资料,如不小心侵犯了大家的权益,还望海涵,并联系博主删除。

2)博主是萌新上路,文中如有不当之处,请各位大佬指出,共同进步,谢谢。

this关键字

书上对于this的描述:
this 表示一个对象的引用,它指向正在执行方法的对象。特别的,在构造方法中,通过this关键字调用其他构造方法时,必须放在第一行,否则编译器会报错。且在构造方法中,只能通过this调用一次其他构造方法。

this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

this 的用法在 Java 中大体可以分为3种:

1.普通的直接引用
this 相当于是指向当前对象本身。

2.形参与成员名字重名,用 this 来区分

实例

class Person {
    
    
    private int age = 10;
    public Person(){
    
    
    System.out.println("初始化年龄:"+age);
}
    public int GetAge(int age){
    
    
        this.age = age;
        return this.age;
    }
}
 
public class test1 {
    
    
    public static void main(String[] args) {
    
    
        Person Harry = new Person();
        System.out.println("Harry's age is "+Harry.GetAge(12));
    }
}

运行结果

初始化年龄:10
Harry's age is 12

3.引用构造函数
this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

根据 this 出现位置的不同,this 作为对象的默认引用有两种情形:

①在构造器中引用该构造器正在初始化的对象。注:this就是正在被初始化的对象。可以调用属性字段。

②在方法中引用调用该方法的对象。注:this就是调用该方法的对象,可以调用该方法的方法。

this 用法

  1. 调用本类方法
  2. 调用本类属性
  3. 调用本类的其他构造方法
  4. 调用父类的或指定的其他的类的同名方法,为避免歧义而生的方法
  5. 隐藏式的调用,不指定范围,java会在全类范围内向上查找变量或方法

super关键字

java 中的 super 关键字是一个引用变量,用于引用父类对象。如果构造方法没有显示地调用父类的构造方法,那么编译器会自动为它加上一个默认的super()方法调用。如果父类由没有默认的无参构造方法,编译器就会报错,super()语句必须是构造方法的第一个子句。

super 可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

super 有三种用法:

1.普通的直接引用
与 this 类似,super 相当于是指向当前对象的父类,这样就可以用 super.xxx 来引用父类的成员。

2.子类中的成员变量或方法与父类中的成员变量或方法同名

实例

class Country {
    
    
    String name;
    void value() {
    
    
       name = "China";
    }
}
  
class City extends Country {
    
    
    String name;
    void value() {
    
    
        name = "Shanghai";
        super.value();      //调用父类的方法
        System.out.println(name);
        System.out.println(super.name);
    }
  
    public static void main(String[] args) {
    
    
       City c=new City();
       c.value();
    }
}

运行结果

Shanghai
China

可以看到,这里既调用了父类的方法,也调用了父类的变量。若不调用父类方法 value(),只调用父类变量 name 的话,则父类 name 值为默认值 null。

3.引用构造函数
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。

猜你喜欢

转载自blog.csdn.net/weixin_46263782/article/details/107604884