Java基础:this关键字、super关键字

来源:互联网 发布:软件任务单模版 编辑:程序博客网 时间:2024/05/29 14:14

this关键字:

this代表当前类的一个实例,它经常出现在构造方法和方法中,具体有以下三种使用情况:

  • 返回调用当前方法的对象引用;
  • 在构造方法中调用当前类中的其他构造方法;
  • 当方法参数名和成员变量名相同时,用于区分参数名和成员变量名。


1.返回调用当前方法的对象引用:

示例代码:

public class Leaf{     private Int i=0;     public Leaf  increment(){i++; <span style="white-space:pre"></span>return this;   }    public void print(){      System.out.println("i="+i);   }  public static void main(String[] args){     Leaf x=new Leaf();     x.increment().increment().print();    Leaf y=new Leaf();    y.increment().increment().increment().print();  }

在上述代码中,this代表Leaf的实例,当执行”x.increment()"时,this代表x的实例;当执行"y.increment()"时,this 代表y的实例。运行结果如下:

i=2i=3


2.在构造方法中调用当前类的其他构造方法:

示例代码:

public class Person {     private String name;     private String sex;     private int age;          public Person(){     sex="male";     }          public Person(String _name){     this();     name=_name;     }          public Person(String _name, int _age){     this(_name);     age=_age;     }}

注意:在使用this调用其他构造方法时,必须将其放在构造方法的开始处,否则编译不通过。


3.当成员变量名和方法参数名相同时,用于区分参数名和成员变量名:

public class Person {   private String name;   private String sex;      public void setName(String name){   this.name=name;   }      public void setSex(String sex){   this.sex=sex;   }}

super关键字:

super代表父类的实例,在子类中,使用super可以调用其父类的方法、属性,构造方法等。

super的具体使用情况有以下2种:

  • 调用父类中的构造方法;
  • 调用父类中的方法和属性。


1.调用父类中的构造方法:

示例代码:

public class Student extends Person{private String stno;private  int grade;public Student(){super();}public Student(String name, String stno, int grade){super(name);this.stno=stno;this.grade=grade;}}
注意:如果父类中没有相应的构造方法,则会产生编译错误。


2.调用父类中的方法和属性:

示例代码:

public class Student extends Person{private String stno;private  int grade;public void show(){     super.show();     //假设父类已经实现了show()方法;     System.out.println("stno="+stno);     System.out.println("grade="+grade);}}




1 0
原创粉丝点击