什麼是默認的構造函數?
構造函數和默認構造函數有什麼區別
區別:
1、構造函數的函數名稱與類名同名,其他方法(函數)名稱可以自定義。
2、構造函數僅在對象被創建時系統會根據給定的參數以及類中的構造函數定義進行選擇調用,如果類中沒有定義構造函數,系統默認會提供一個無參構造空函數,什麼都不會做,只是滿足接口要求,構造函數不能被顯式調用。其他函數根據程序員需要而調用,且必須顯式調用。
3、由於對象創建後,系統必須返回新建對象的地址,賦值給指針變量(C++,C#中是將引用賦值給對象變量,其實一樣,內部也是對象地址),那麼換句話說,返回接口被系統佔用了,因此構造函數就不能返回任何類型值,所有帶返回值構造函數的定義編譯器都不會通過。結果就是構造函數沒有也不能有返回類型,而其他函數隨意。
4、由於構造函數的作用只是在創建對象時用來初始化成員變量和對象的,因此構造函數不能被繼承也不能使用接口。換句話說,因為構造函數只在對象創建時會被調用,其他情況下永遠不會被調用,因此如果對一個類定義一個接口,接口中提供了構造函數的接口的話,該函數接口是永遠無法被顯式調用的,顯得多餘了,因此如果為構造函數定義接口,編譯器會報錯。(new一個對象的時候new的是類,不會new接口)
目前就想到這些。
C#的構造函數默認是什麼
默認是一個沒有任何參數的構造函數。
如果某個類沒有構造函數,則會自動生成一個默認構造函數,並使用默認值來初始化對象字段。
例如, int 初始化為 0。
java中什麼是默認的構造方法
每個類中,你不些寫構造方法,他都默認存在一個無參的構造方法
構造函數和默認構造函數有什麼區別
默認構造函數是構造函數的一種,一般你定義一個類都會自帶構造函數,即默認構造函數,你也可以自己定義構造函數
java構造方法和默認構造方法
如果一個類不寫構造函數,就有一個默認構造函數:public 類名(){}如果你寫了構造函數,那麼這個默認的構造如果需要,就要寫了
java為什麼要提供默認構造方法?作用是什麼?
class Test {
int n;
}
這段沒有人為構造方法
class Test {
int n;
Test(int n) {
this.n=n
}
Test(){
this.n=1;
}
}
這段有人為(的兩種不同參數的)構造方法
默認構造方法的作用和人為構造方法作用差不多,就是假如你不聲明構造方法,他總得調用一個構造方法,但是他又找不到人為定義的,所以就用這個默認的不帶參數的空方法作為構造方法
作用大概就是這樣
c++什麼叫構造函數,它的作用是什麼
構造函數的名字和類的名字一樣,並且沒有返回值類型。通常用於初始化私有的數據成員。
什麼叫沒有默認構造函數的類類型成員??能不能舉例說明??
默認構造函數(default constructor)就是在沒有顯式提供初始化式時調用的構造函數。它由不帶參數的構造函數,或者為所有的形參提供默認實參的構造函數定義。如果定義某個類的變量時沒有提供初始化式就會使用默認構造函數。
如果用戶定義的類中沒有顯式的定義任何構造函數,編譯器就會自動為該類型生成默認構造函數,稱為合成的構造函數(synthesized default constructor)。
如果類包含內置或複合類型的成員,則該類就不應該依賴於合成的默認構造函數,它應該定義自己的構造函數來初始化這些成員。
多數情況下,編譯器為類生成一個公有的默認構造函數,只有下面兩種情況例外:
1.一個類顯式地聲明瞭任何構造函數,編譯器不生成公有的默認構造函數。這這種情況下,如果程序需要一個默認構造函數,需要由類的設計者提供。
舉例說明:比如說:下面的A就沒有默認構造函數。
class A
{
A(int);
};
2.一個類聲明瞭一個非公有的默認構造函數,編譯器不會生成公有的默認構造函數。
詳見參考資料
參考資料:baike.baidu.com/view/2785579.htm
什麼是.net構造函數
class Book{
int i=0;
void book(_i){"這個函數是構造函數."};
}
而book bk=new book();中的bk不是函數,是個對象.
構造函數默認是公有還是私有類型
默認構造函數能在main中實列化對象所以為public,所謂的默認類成員為私有是指在未顯式聲明的情況下為private。即. class A{A();....}; viod main(){ A a; }將會報錯。