構造方法 概念: 又叫 構造器,區分於傳統的方法,是一個在創建對象時被系統自動調用的特殊方法 作用: 一:為對象進行初始化(成員變數)的工作 二:為對象在堆記憶體中開闢獨立的記憶體空間 定義格式: 訪問修飾符 方法名(){ } 用法: 只能通過new關鍵字進行調用 註意事項: 一:方法名必須和類名保持一 ...
構造方法
概念:
又叫 構造器,區分於傳統的方法,是一個在創建對象時被系統自動調用的特殊方法
作用:
一:為對象進行初始化(成員變數)的工作
二:為對象在堆記憶體中開闢獨立的記憶體空間
定義格式:
訪問修飾符 方法名(){
}
用法:
只能通過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歲,喜歡吃拉麵