1樓:綺綺寶媽
共同點:
都是例項化物件,初始化資料的
預設構造是說所有的類都從祖先object那繼承了空參的構造方法,你不寫與寫空參構造都存在,而有引數的構造一般是自己寫的,寫就有不寫就沒有,它的作用和空參的一樣,只是它裡面可以有引數,給你個例子來說明吧
有乙個類monitor它有屬性string height;string
width
public monitor(){}
public monitor(string height,string width){}
有乙個空參的乙個有參的構造的方法
在main方法裡我做初始化動作
monitor monitor=new monitor();
這個構造只是把顯示器這個物件創造出來了,它的屬性就沒有值,也可以再手動給它賦上值
如:monitor.height=100;
monitor.width=200;
用有參的就不一樣了,少很多事
monitor monitor2=new monitor("100","200");
在這裡我只要把想放進去的引數直接放進去就能給我的屬性賦上值,是不是省了很多事?
這就是它的優勢!
回答完結!
2樓:匿名使用者
簡單的來說建構函式就是用來建立物件用的,說的專業些叫例項化物件。
定義:class a
}使用:
a a=new a();//在這裡,a()就是就是建構函式。
需要注意的一點是,如果類裡面沒有定義建構函式,編譯器也會自動生產乙個空建構函式,類的各個成員都賦上預設值。
但是如果在類裡面只定義了乙個私有的建構函式的時候,那麼這個類將不能被例項化。
class a
//這個類不能被例項化
} 如果我們定義了帶引數的建構函式,而沒有定義不帶引數的建構函式,那麼在例項化這個類的物件的時候必須提供引數。
class a
} 不能這麼例項化物件 a a=new a();
3樓:匿名使用者
建構函式分為動態建構函式和靜態建構函式。
動態建構函式是類或結構例項化時,為其分配記憶體空間,完成類或結構當中成員變數的初始化工作。動態建構函式可以過載,即相同建構函式名稱擁有不同型別和數目的多個建構函式。帶引數的建構函式和不帶引數的建構函式沒有本質區別,帶引數的建構函式可以通過傳入的變數控制或者直接初始化其中的成員變數,在建構函式中可以為成員變數初始化預設值。
靜態建構函式不允許攜帶引數,即乙個類中只允許有乙個靜態建構函式。它在第一次訪問靜態成員或者第一次例項化動態該類的物件之前呼叫。
c#中建構函式的定義?
4樓:匿名使用者
建構函式是在建立給定型別的物件時執行的類方法。建構函式具有與類相同的名稱,它通常初始化新物件的資料成員。
c # 建構函式有什麼作用
5樓:
你可以在建構函式說初始化類所需要的某些資料。
就算你沒有定義建構函式,編譯時候編譯器也會自動幫你生成乙個預設建構函式。
create 和destroy相對應,在建構函式中開闢的空間或者建立的物件在destroy函式中要釋放掉,保證記憶體不洩漏。
比如說類裡面有個變數定義 string str; 你建立物件時如果要這個str有個初始值,就在建構函式裡定義str=「初始值」;
以上是我個人見解。
C 中預設建構函式是public還是private的
建構函式一律都是公有成員。系統在構造物件的時候會呼叫建構函式的,如果是私有成員的話,就無權訪問了。如果將建構函式寫在private關鍵字後面,那麼編譯時會報錯的。建構函式 是一種特殊的方法。主要用來在建立物件時初始化物件,即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。特別的乙...
c當建構函式失敗時建構函式內部怎麼處理
w別y雲j間 1 建構函式想通知外部自己構造失敗,只有拋異常這一個途徑 沒有返回值 2 如果不拋異常,那麼建構函式執行完畢,從語言層面上編譯器認為該物件是正確構造了的,其實構造沒有按預想的進行,所以需要用狀態變數 建構函式引用引數就可以讓外界可以知道構造失敗了。3.如果拋異常標識構造失敗,那麼,所有...
在c 中物件成員必須在含有引數的建構函式中初始化,並且在初始化成員列表中?這句話有問題吧
看你的成員變數型別和繼承方式了,公有成員變數和公有繼承,直接賦值就行了。私有成員變數,繼承之後要在初始化列表中初始化 初始化表的必要性 1 類中包含常量和引用型的成員變數。必須通過建構函式和初始化表顯式地對其進行初始化。2 在子類中顯式地構造其基類部分。class a a int n m n n p...