メインメニューを開く

差分

コンストラクタ

32 バイト追加, 2017年8月21日 (月) 07:43
== 概要 ==
多くのプログラミング言語においてコンストラクターというと「new」というイメージが強いが、メモリ確保とコンストラクターが別々に行われる言語もある。多くの[[プログラミング言語]]においてコンストラクターというと「new」というイメージが強いが、メモリ確保とコンストラクターが別々に行われる言語もある。たとえばJavaでは「new」を呼び出すとメモリが確保されるが、コンストラクター実行はその後の最初のオブジェクト利用時となる。たとえば[[Java]]では「new」を呼び出すとメモリは確保されるが、コンストラクター実行はその後の最初のオブジェクト利用時となる。
<source lang="java">
// メモリ確保のみ
MyClass obj = new MyClass();
// new直後の初回利用時にコンストラクター実行され、その後sayHelloが呼ばれるnew直後の初回利用時にコンストラクターが実行され、その後sayHelloが呼ばれる
obj.sayHello();
</source>
一方でC一方で[[C Sharp|C#では「new」を呼び出すとメモリの確保とコンストラクターの実行が行われる。]]では「new」を呼び出すとメモリの確保とコンストラクターの実行の両方が行われる。
見た目が似ていても微妙に挙動が違うので注意しよう。
匿名利用者