1. 程式人生 > >this 和super關鍵字

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();
}

}