コンストラクタとinitの違いってなんですか