java集合有哪些 構(gòu)造函數(shù)不能指定返回值,是怎么回事?
構(gòu)造函數(shù)不能指定返回值,是怎么回事?1. 構(gòu)造函數(shù)調(diào)用不設(shè)置返回值的原因是由構(gòu)造函數(shù)的特殊性決定的。從基本語義的角度來看,構(gòu)造函數(shù)應(yīng)該返回構(gòu)造的對象。構(gòu)造函數(shù)和析構(gòu)函數(shù)是兩個非常特殊的函數(shù):它們沒有返
構(gòu)造函數(shù)不能指定返回值,是怎么回事?
1. 構(gòu)造函數(shù)調(diào)用不設(shè)置返回值的原因是由構(gòu)造函數(shù)的特殊性決定的。從基本語義的角度來看,構(gòu)造函數(shù)應(yīng)該返回構(gòu)造的對象。構(gòu)造函數(shù)和析構(gòu)函數(shù)是兩個非常特殊的函數(shù):它們沒有返回值。這顯然不同于返回值為void的函數(shù)。盡管后者不返回任何值,但它可以執(zhí)行其他操作,但構(gòu)造函數(shù)和析構(gòu)函數(shù)是不允許的。創(chuàng)建并消除程序中對象的非行為如果它們有返回值,要么編譯器必須知道如何處理返回值,要么客戶端程序員只能自己顯式調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)。這樣,安全就會被破壞。此外,析構(gòu)函數(shù)不承擔(dān)任何責(zé)任,類foo{foo(){}}構(gòu)造函數(shù)與類同名,不需要指定返回類型。構(gòu)造函數(shù)用于實(shí)例化對象,即傳遞參數(shù)以創(chuàng)建對象而不返回值。