4.JAVA基礎複習——JAVA中的構造函數與this關鍵字

構造函數:構建創造對象時調用的函數
特色:
  1.函數名與類名相同。
  2.不用定義返回值類型。
  3.沒有具體的返回值。函數

public class Demo {
    private int age;
    private String name;    
    //省略get、set方法
    public Demo(){//無慘構造不寫時系統將默認添加一個無慘構造
    }
}

做用:
  給對象初始化,建立對象時會先調用構造方法對對象進行初始化。
注意:
  1.默認構造函數的特色。不寫構造函數時系統會自動給加一個默認的構造函數,若是本身 定義了一個構造函數,系統不會再給添加一個默認的構造函數。
  2.多個構造函數是以重載的形式存在的。
  3.建立對象都必需要經過構造函數初始化。this

 1 public class Demo {
 2     private int age;
 3     private String name;    
 4     //省略get、set方法
 5     public Demo(){//無參構造不寫時系統將默認添加一個無慘構造
 6     }
 7     public Demo(int age) {//有參構造多個構造函數以重載的形式存在
 8         this.age = age;
 9     }
10     public Demo(String name){
11         this.name = name;
12     }
13     public Demo(String name,int age){
14         this(age);
15         this.name=name;
16     }
17     
18     public static void main(String[] args) {
19         Demo d = new Demo(10);//建立對象時會先去找與之參數對應的構造函數進行初始化
20     }

通常函數和構造函數的區別:
  構造函數:
    對象建立時,就會調用與之對應的構造函數,對對象進行初始化。
    對象建立時,會調用且只調用一次
  通常函數:
    對象建立後,須要函數功能是才調用。
    對象建立後,能夠調用屢次。
何時定義構造函數:
  在描述事物時,該事物一存在就具有一些內容,這些內容都定義在構造函數中。spa

 

 

 

this關鍵字:
做用:
  1.當成員變量和局部變量重名時,能夠用this關鍵字來區分code

1 public class Demo {
2     private int age;//成員變量
3     private String name;    
4     public Demo(int age) {//參數爲局部變量
5         this.age = age;//this.age表示當前對象的age用來跟局部變量age區分
6     }
7 }

  2.當構造函數須要調用已有的構造函數時能夠有this關鍵字,須要注意的是須要將調用的 構造函數放在第一行。對象

 1 public class Demo {
 2     private int age;
 3     private String name;    
 4     public Demo(int age) {
 5         this.age = age;
 6     }
 7     public Demo(String name,int age){
 8         this(age);//調用已有的構造函數,注意調用的構造函數要放在第一行
 9         this.name=name;
10     }
11 }    

this:
  表明當前對象。
  是所在函數所屬對象的引用。
  簡單來講:哪一個對象調用了this所在的函數,this就表明哪一個對象。blog

相關文章
相關標籤/搜索