概念的にはコンストラクタはオブジェクトを生み出すものだな。
そしてコンストラクタを経由せずに生み出されるオブジェクトは存在しない。
(つまりコンストラクタによって初期状態として存在可能な
オブジェクトの集合の要素が定義される。)

普通のメソッドはオブジェクトが生まれてから呼び出されるが、
コンストラクタはオブジェクトの作成中に呼び出される。

クラス・メソッド(staticメソッド)と違って
関連付けられているオブジェクトを指すthisが使えるのに
呼び出された段階ではまだオブジェクトは出来上がっていない。

newでオブジェクトを作成したときにだけ自動的に呼び出され、
既存のオブジェクトを再初期化するために呼び出すことも出来ない。
値を返すことも出来ない。

そういう特殊なメソッド。
初期化目的でinit()みたいなメソッドを書くときとは異なる。
(逆に生成時の初期化と既存オブジェクトの再初期化を共通化するために
init()を作っておいてそれをコンストラクタから呼ぶというテクニックはよくある。)