又稱構造器,是乙個特殊的方法,它是方法名與類名相同且沒有返回值型別的方法。
作用:用來給成員變數初始化
定義語法:
修飾詞 類名(有參傳參){}
無參構造器:如果在定義類時,沒有新增構造方法,
系統會預設提供乙個公有的無參的構造方法
有參構造器:因為構造器是用來給成員變數初始化的,
為了方便,所以形式引數的名稱都與成員變數一致。
因此,在賦值時,this.不能省略。
ps:如果定義了構造器,系統不再提供預設的無參構造器
構造器的呼叫:
new 構造方法(有參傳參)
只能是new關鍵字來呼叫
物件的例項化:是由new完成的(物件此時就存在了,但是成員變數都是預設值)
物件的成員變數初始化:是由new呼叫的構造器進行的(成員變數是第一次被賦值)
舉個栗子:
乙個未出生的嬰兒,這個嬰兒已經存在,但是沒有名字,出生日期等。
這就是例項化
當嬰兒出生後他有了名字,出生日期,性別等。
這就是給物件的成員變數初始化
/**
* 定義乙個學生型別:student
* 成員變數:
* string stuid;
* string name;
* string grade;
* int age;
* double score;
* 構造方法:作用是用來給成員變數初始化
*/public
class
student
public string tostring()
public
static
void
main(string args)
}
乙個類可以有多個構造器
在普通方法或構造器中,操作的成員變數如果與區域性變數名稱相同時,
為了避免出現歧義,應該在成員變數前使用this.進行區分
當沒有歧義時,this.可以省略不寫
在構造器中:還可以使用this關鍵字呼叫本類中的其他構造方法
語法格式: this(有參傳參)
ps:只能在構造器中的首行首句上使用
public
class
dog
//全參構造器
public
dog(string name,int age,char gender,string color)
//提供三個引數的構造器
public
dog(string name,int age,char gender)
//提供兩個引數的構造器
public
dog(string name,int age)
}
成員變數
定義位置:在方法外,類體中
預設值:有預設值,構造器中可以不對成員變數初始化
記憶體位置:在堆中
生命週期:從物件例項化開始出現,到物件消失
區域性變數
定義位置:在方法內(包含小括號內的形參)
預設值: 沒有預設值,必須初始化再使用
記憶體位置:在棧幀中
生命週期:從宣告時開始,到方法結束後,棧幀消失時。
物件導向 構造方法
構造方法會在類被例項化的時候執行,oc中的構造方法名為init 重寫init方法必須按照蘋果規定的格式重寫,如果不按照規定會引發一些未知錯誤 注意點 import inte ce person nsobject property int age end implementation person 當...
物件導向 構造方法
給物件的資料進行初始化 a 方法名與類名相同 b 沒有返回值型別,連void都沒有 c 沒有具體的返回值 a 如果我們沒有給出構造方法,系統將自動提供乙個無參構造方法。b 如果我們給出了構造方法,系統將不再提供預設的無參構造方法。注意 這個時候,如果我們還想使用無參構造方法,就必須自己給出。建議永遠...
物件導向(構造方法)
構造方法constructor概述和格式 構造方法的概述和作用 構造方法格式特點 構造方法不能用物件呼叫,在一建立物件的時候,系統就幫我們呼叫了構造方法。構造方法也是有return語句的,格式 return public class test01 class person public void s...