關於Java中構造方法的問題以及回答


構造方法

概念

  又叫 構造器,區分於傳統的方法,是一個在創建對象時被系統自動調用的特殊方法

作用:

  一:為對象進行初始化(成員變量)的工作

  二:為對象在堆內存中開辟獨立的內存空間

定義格式:

  訪問修飾符    方法名(){

    }

用法:

  只能通過new關鍵字進行調用

person{
  public person(){
    }  
}
//代碼測試
public static void main(String [] args){
     person per = new person();      
}

注意事項:

一:方法名必須和類名保持一致

二:當一個類中沒有定義構造方法時,系統會自動加載一個無參的構造方法

//一:不寫構造方法,系統默認加載構造方法
Construction con = new Construction();
con.eat();

運行結果如下:
我是:null,今年:0歲,喜歡吃拉面

三:如果用戶重新定義了一個構造方法,那么Java提供的無參的構造方法會默認覆蓋

/**
 * 構造方法: 重寫構造方法,初始化成員變量
 */
public Construction(){
    username = "鳴人";
    garder = 19;
}
//一:重寫構造方法,初始化成員變量
Construction con = new Construction();
con.eat();
運行結果:
我是:鳴人,今年:19歲,喜歡吃拉面

四:返回值問題

構造方法又叫構造器,不能把它等同於普通方法去對比,什么意思呢?

就是,普通方法有返回值類型,有return語句,有訪問修飾符,但是構造方法從本質上就不是普通方法

構造方法:沒有返回值類型,void也不能加

     沒有返回值,但是有運行結果,運行結果就是創建一個對象,所以在構造方法內不能調用return。

       訪問修飾符,只能是public,不能是其他的訪問修飾符。

五:構造方法之間可以使用 this() 相互調用 但是 this() 必須是構造方法內容的第一行  如果有參數 傳入相應的參數

/**
     * 構造方法:無參
     */
    public Construction(){
        this("佐助",19);
//        username = "鳴人";
//        garder = 18;
    }

Construction con = new Construction();
con.eat();
運行結果:
我是:佐助,今年:19歲,喜歡吃拉面

六:當參數列表的參數名和成員變量同名時  要使用this.區分成員變量和 局部變量

/**
 * 構造方法:有參
 * @param username:用戶姓名
 * @param garder:用戶年齡
 */
public  Construction(String username,int garder){
    this.username = username;
    this.garder = garder;
}
//一:重寫構造方法,初始化成員變量
Construction con = new Construction("鳴人",19);
con.eat();
運行結果:
我是:鳴人,今年:19歲,喜歡吃拉面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM