this关键字与super关键字

一 this关键字

    this关键字在程序中三种常见的用法:

    (1)通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题。

     例:

     

<span style="font-size:14px;">class Person{
     int age;
     public Person(int age){
       this.age=age;
     }
    public int getAge (){
    return this.age;
    }
  }</span>
    在上面的代码中,构造方法的参数被定义为age,它是一个局部变量,在类中还定义了一个成员变量,名称也是age,在构造方法中如果使用“age”,则是访问局部变量,但如果使用“this.age”则是访问成员变量。

(2)通过this关键字调用成员方法

  

(3)构造方法是在实例化对象时被java虚拟机自动调用的,在程序中不能像调用其它方法一样去调用构造方法,但可以在一个构造方法中使用“this([参数1,参数2...])”的形式调用其它的构造方法

<span style="font-size:14px;"> class Person{
     public Person(){
        System.out.printIn(无参的构造方法被调用了);
    }
public Person(String name){
     this();
     System.out.printIn(有参的构造方法被调用了);
    }
 }
public class Example{
      public static viod main (String[] args){
      Person p=new Person("itcast");
    }
}</span>
在使用this调用类的构造时应注意:

1.只能在构造方法中使用this调用其它的构造方法,不能在成员方法中使用。

2.在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次。

3.不能再一个类的两个构造方法中使用this互相调用。



二 Super关键字

   当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,在java中专门提供一个super关键字用于访问父类的成员。

   super的用法:

(1)使用super调用父类的成员变量和成员方法。格式如下:

   super.成员变量

<span style="font-size:14px;"> super.成员方法([参数1,参数2....])
</span>


  (2) 使用super调用父类的构造方法。

   例:

<span style="font-size:14px;">class Animal{
     public Animal(String name){
     System.out.printIn("我是一只"+name);
        }
}
class Dog extends Animal{
     public Dog(){
     super("狼狗");
       }
}
public class Example{
     public static viod main(String[ ] args ){
     Dog dog=new Dog();
      }
}
</span>
  注意:通过super调用父类的构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。

              在子类的构造方法中一定会调用父类的某个构造方法。这时可以在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值