「コンストラクタ」の版間の差分
ページの作成:「'''コンストラクター'''(英語:constructor)とは、建築業という意味であり、転じてオブジェクト指向プログラミング言語...」 |
imported>Administrator |
||
| (2人の利用者による、間の3版が非表示) | |||
| 2行目: | 2行目: | ||
== 概要 == | == 概要 == | ||
多くの[[プログラミング言語]]においてコンストラクターというと「new」というイメージが強いが、メモリ確保とコンストラクターが別々に行われる言語もある。 | |||
たとえば[[Java]]では「new」を呼び出すとメモリは確保されるが、コンストラクター実行はその後の最初のオブジェクト利用時となる。 | |||
<source lang="java"> | <source lang="java"> | ||
// メモリ確保のみ | // メモリ確保のみ | ||
MyClass obj = new MyClass(); | MyClass obj = new MyClass(); | ||
// | // new直後の初回利用時にコンストラクターが実行され、その後sayHelloが呼ばれる | ||
obj.sayHello(); | obj.sayHello(); | ||
</source> | </source> | ||
一方で[[C Sharp|C#]]では「new」を呼び出すとメモリの確保とコンストラクターの実行の両方が行われる。 | |||
見た目が似ていても微妙に挙動が違うので注意しよう。 | 見た目が似ていても微妙に挙動が違うので注意しよう。 | ||