構(gòu)造函數(shù) - 簡介
站在用戶的角度思考問題,與客戶深入溝通,找到吉安網(wǎng)站設(shè)計與吉安網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋吉安地區(qū)。
構(gòu)造函數(shù) 是一種特殊的方法 主要用來在創(chuàng)建對象時初始化對象 即為對象成員變量賦初始值
總與new運算符一起使用在創(chuàng)建對象的語句中 特別的一個類可以有多個構(gòu)造函數(shù) 可根據(jù)其參數(shù)個數(shù)的不同或參數(shù)類型的不同來區(qū)分它們 即構(gòu)造函數(shù)的重載
構(gòu)造函數(shù) - 構(gòu)造函數(shù)與其他方法的區(qū)別
1.構(gòu)造函數(shù)的命名必須和類名完全相同;而一般方法則不能和類名相同.
2.構(gòu)造函數(shù)的功能主要用于在類的對象創(chuàng)建時定義初始化的狀態(tài).它沒有返回值,也不能用void來修飾.這就保證了它不僅什么也不用自動返回,而且根本不能有任何選擇.而其他方法都有返回值.即使是void返回值,盡管方法體本身不會自動返回什么,但仍然可以讓它返回一些東西,而這些東西可能是不安全的.
3.構(gòu)造函數(shù)不能被直接調(diào)用,必須通過new運算符在創(chuàng)建對象時才會自動調(diào)用,一般方法在程序執(zhí)行到它的時候被調(diào)用.
4.當(dāng)定義一個類的時候,通常情況下都會顯示該類的構(gòu)造函數(shù),并在函數(shù)中指定初始化的工作也可省略,不過Java編譯器會提供一個默認(rèn)的構(gòu)造函數(shù).此默認(rèn)構(gòu)造函數(shù)是不帶參數(shù)的.而一般方法不存在這一特點
5當(dāng)一個類只定義了私有的構(gòu)造函數(shù),將無法通過new關(guān)鍵字來創(chuàng)建其對象,當(dāng)一個類沒有定義任何構(gòu)造函數(shù),C#編譯器會為其自動生成一個默認(rèn)的無參的構(gòu)造函數(shù)。
構(gòu)造函數(shù) - C++中的構(gòu)造函數(shù)
C++的構(gòu)造函數(shù)定義格式為: 構(gòu)造函數(shù)
class 類名
{
public:
類名(參數(shù)表)
//...(還可以聲明其它成員函數(shù))
};
類名::類名(參數(shù)表)
{
//函數(shù)體
}
如以下定義是合法的:
class T
{
public:
T(int a=0){i=a;}//構(gòu)造函數(shù)允許直接寫在類定義內(nèi),也允許有參數(shù)表。
private:int i;
};
當(dāng)程序中沒有析構(gòu)函數(shù)時,系統(tǒng)會自動生成以下構(gòu)造函數(shù):
類名::類名(){},即不執(zhí)行任何操作。
構(gòu)造函數(shù) - C++例子
//注意若將本代碼直接復(fù)制進(jìn)編譯器,可能會報錯,原因是網(wǎng)頁生成時會在代碼前加一個中文占位符
//最好將代碼再寫一次
#include
using namespace std;
class time
{
public:
time() //constructor.構(gòu)造函數(shù)
{
hour=0;
minute=0;
sec=0;
}
void set_time();
void show_time();
private:
int hour;
int minute;
int sec;
};
int main()
{
class time t1;
t1.show_time();
t1.set_time();
t1.show_time();
return 0;
}
void time::set_time()
{
cin hour;
cin minute;
cin sec;
}
void time::show_time()
{ cout}
程序運行情況:
0:0:0
10 11 11 回車
10:11:11
任何時候,只要創(chuàng)建類或結(jié)構(gòu),就會調(diào)用它的構(gòu)造函數(shù)。類或結(jié)構(gòu)可能有多個接受不同參數(shù)的構(gòu)造函數(shù)。構(gòu)造函數(shù)使得程序員可設(shè)置默認(rèn)值、限制實例化以及編寫靈活且便于閱讀的代碼。
JAVA示例代碼:
public class UserManagerImpl implements UserManager {
private UserDao userDao;
public UserManagerImpl(UserDao userDao){
this.userDao=userDao;
}
public void save(String username,String password){
this.userDao.save(username, password);
}
}
PHP中的構(gòu)造函數(shù)
構(gòu)造函數(shù)的聲明與其它操作的聲明一樣,只是其名稱必須是兩個下劃線__construct( )。這是PHP5中的變化;PHP4的版本中,構(gòu)造函數(shù)的名稱必須與類名相同。為了向下兼容,如果一個類中沒有名為__construct( )的方法,PHP將搜索一個與類名相同的方法。
格式:function __construct ( [參數(shù)] ) { ... ... }
例子:
class person{
public $name;
public $age;
function _ _construct(){ // 構(gòu)造函數(shù)
$this-name="lisi";
$this-age=28;
}
function say(){
echo "my name is ".$this-name."
";
echo "my age is ".$this-age."
";
}
}
$per=new person();
$per-say();
$per-name="zhangsan";
$per-age=26;
$per-say();
?
C#例子
構(gòu)造函數(shù)是在創(chuàng)建給定類型的對象時執(zhí)行的類方法。構(gòu)造函數(shù)具有與類相同的名稱,它通常初始化新對象的數(shù)據(jù)成員。
在下面的示例中,使用一個簡單的構(gòu)造函數(shù)定義了名為 Taxi 的類。然后使用 new 運算符來實例化該類。在為新對象分配內(nèi)存之后,new 運算符立即調(diào)用 Taxi 構(gòu)造函數(shù)。
public class Taxi{ public bool isInitialized; public Taxi() { isInitialized = true; }}class TestTaxi{ static void Main() { Taxi t = new Taxi(); System.Console.WriteLine(t.isInitialized); }}
構(gòu)造函數(shù)是一種用于創(chuàng)建對象的特殊函數(shù),當(dāng)創(chuàng)建對象是,系統(tǒng)自動調(diào)用構(gòu)造函數(shù),不能在程序中直接調(diào)用.
構(gòu)造函數(shù)名與類名相同,一個類可以擁有多個構(gòu)造函數(shù)(重載),構(gòu)造函數(shù)可以有任意類型的參數(shù),但不能具有返回類型!
構(gòu)造函數(shù)的作用是:為對象分配空間;對數(shù)據(jù)成員賦初值;請求起他資源.
析構(gòu)函數(shù)作用是清除對象,釋放內(nèi)存等
簡單地說構(gòu)造函數(shù)是類函數(shù),函數(shù)名與類名完全相同,無返回值
構(gòu)造函數(shù)屬于類的成員函數(shù),除了具有一般成員函數(shù)的特點外,還具有自己的特點:
(1)是類的一個特殊的成員函數(shù),函數(shù)名與類名相同;
(2)訪問屬性應(yīng)該是public;
(3)功能是初始化對象,在構(gòu)造函數(shù)中一般不作初始化以外的事情;
(4)可以在類內(nèi)定義,也可在類外定義;
(5)無函數(shù)返回類型,注意:什么也不寫,也不可寫為void;
(6)程序運行時,當(dāng)對象被創(chuàng)建后,該對象所屬的類的構(gòu)造函數(shù)自動被調(diào)用,在該對象生存期中也只調(diào)用這一次;
(7)可以重載
分享文章:c語言什么是構(gòu)造函數(shù) c語言中的構(gòu)造數(shù)據(jù)類型有哪些
分享地址:http://jinyejixie.com/article34/ddisise.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、小程序開發(fā)、手機網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)