物件導向 構造方法

2021-08-22 07:08:51 字數 1803 閱讀 7911

又稱構造器,是乙個特殊的方法,它是方法名與類名相同且沒有返回值型別的方法。

作用:用來給成員變數初始化

定義語法:

修飾詞 類名(有參傳參){}

無參構造器:如果在定義類時,沒有新增構造方法,

系統會預設提供乙個公有的無參的構造方法

有參構造器:因為構造器是用來給成員變數初始化的,

為了方便,所以形式引數的名稱都與成員變數一致。

因此,在賦值時,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...