您的位置:首页 > 其它

this关键字与super关键字

2015-10-02 09:59 405 查看
一 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指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: