Ah I now understand what you had in mind here.

I would do this slightly differently: the init method should not have any parameters, just private void init()
It initialises with default values and registers parameters.
However, the constructors should have the REQUIRE checks, they are called by the user, so please do the checks in there.