If you don't type a constructor into your class code, a default
constructor will be automatically generated by the compiler. The
default constructor is ALWAYS a no-arg constructor. (Obviously the
compiler has no clue what all arguments you might want for your
class. So it takes the safe way out with a no argument
constructor)
A no-arg constructor is not necessarily the default (i.e.,
compiler-supplied) constructor, although the default constructor is
always a no-arg constructor. The default constructor is the one the
compiler provides! While the default constructor is always a no-arg
constructor, you're free to put in your own no-arg constructor.