码迷,mamicode.com
首页 > 其他好文 > 详细

this、super关键字

时间:2020-10-18 17:14:54      阅读:11      评论:0      收藏:0      [点我收藏+]

标签:with   ext   java   针对   直接   const   另一个   关键字   this   

2020-10-18 ?????? longzqa@163.com ?????? stronglzq

【摘要】针对常用到的this、super关键字进行总结。this关键字用来指代当前对象,super用来指代父类对象。

this关键字

this关键字用来访问当前类的内容,指代当前对象,主要有以下用法:

(1)当方法中的变量与所在类的成员变量名称相同时,用this.成员变量表示类的成员变量。

public class Person{
      private String name;
      private int age;

      public Person(String name){
            // 局部变量name将成员变量屏蔽
            this.name = name;
      }
}

(2)用this调用重载构造方法,即一个构造方法调用另一个构造方法,注意必须为构造方法的第一句,并且编译器禁止在其他地方调用构造器。

public class Person{
      private String name;
      private int age;

      // 无参构造方法1
      public Person(){
            System.out.println("Consructor with no parameter.");
      }

      // 有参构造方法2,调用无参构造1
      public Person(String name, int age){
            this();
            this.name = name;
            this.age = age;
            System.out.println("Constructor with parameter name, age.")
      }
}

(3)用this调用当前类的其他方法,语法为this.被调用的方法名,但调用当前类的其他方法直接调用即可,无需使用this。

(4)this和super关键字无法在静态方法中使用。因为this指代当前对象,super指代父类对象,而静态方法属于类,只能通过类来调用,而无法通过对象来调用。
注:main()方法是静态方法,故在main()方法中无法使用this和super关键字。

super关键字

与this关键字对应,super关键字用来调用父类的内容,指代父类对象。super主要有以下用法:

(1)调用父类的成员变量,语法为super.父类成员变量

(2)调用父类的成员方法,语法为super.父类成员方法

(3)子类构造方法调用父类构造方法,注意只能在构造方法中调用构造方法,并且调用语句必须放在第一句

public class Person{
      private String name;
      private int age;
      
      public Person(){
            System.out.println("Superclass constructor with no parameter");
      }
}

public class Teacher extends Person{
      public Teacher(){
            super();
            System.out.println("Subclass constructor that called superclass constructor");
      }
}

(4)注意this、super两个关键字不能在静态方法中使用。

this、super关键字

标签:with   ext   java   针对   直接   const   另一个   关键字   this   

原文地址:https://www.cnblogs.com/stronglzq/p/13835668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!