this 和super关键字

一、this  关键字

   this关键字代表的就是函数所属的调用者。this关键字的作用:

       1.如果存在同名的成员变量与局部变量时,在方法内部默认的时访问的时局部变量,可以通过this关键字调用成员变量
       2.在一个构造方法中调用另一个构造方法来初始化对象
this关键字要注意的事项
       1.存在同名的成员变量与局部变量时,在方法内部默认会调用局部变量
        2.如果在一个方法中访问一个变量,该变量存在成员遍历的情况下,,jav会默认在改变量前面添加this

二、super:

    super 关键字主要是用于实现父类的成员变量,用于当前对象的父类的 应用。

     super关键字的主要作用是:

          1.当子类和父类存在同名的成员变量是,如果要访问的是父类的成员变量和构造方法是,需要super关键字来调。

         2.通过super关键字来调用父类的构造方法

super关键字调用父类构造方法要注意的事项:
           1.如果在子类的构造方法上没有指定用父类的构造方法,那么java编译器会在子类的构造方法上面加上super()关键字。
           2.super关键字调用父类的构造函数时,该语句必须是子类构造函数中的第一个语句。
           3.super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都要排在第一个语句

 代码如下:

   

package com.homewor;
class Students{
           private String name;
           private int age;
          private String address;
   public Students(String name, int age, String address) {
        super();
      this.name = name;
      this.age = age;
      this.address = address;
   }
      public Students() {
           super();
      // TODO Auto-generated constructor stub
          }
         public String getName() {
         return name;
         }
         public void setName(String name) {
          this.name = name;
        }
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Students [name=" + name + ", age=" + age + ", address=" + address + "]";
}
public void Stdeny(){
System.out.println("把自己的心静静下来,好啊好啊的的休息好好的学习,");
}
}
public class StudentTest {

public static void main(String[] args) {
Students s=new Students();
s.setName("nama ");
s.setAge(100);
s.setAddress("tainajin");
s.Stdeny();
}

}

猜你喜欢

转载自www.cnblogs.com/yang-1yang/p/10088304.html