Developers are responsible for knowing what the default values for primitive data types are, so they are not strictly necessary. However, as some have indicated, it does prove you've thought about the issue.
Further, the overwhelming majority of variable types in your code will be custom types that you've created. Developers are not responsible for knowing what the default value of your custom enum is. Good communication requires that you specify default values in these cases. Since we are creatures of habit, it's better to establish a habit of always initializing your variables. It makes no difference whether you do it at the class level or in your constructor so long as you are consistent in your approach.