You should see the assigning of default values to member variables as the exception, not the other way around. Probably the designers of the
Java language made it so that member variables get assigned default values because otherwise code would become messy - if you would always need to explicitly supply values to initialise member variables, that would possibly add a lot of code to the class.
Not everything in the Java language has a deep and logical reason. The designers of Java had to make choices, and this is just one choice they made.