With so many ways of initializing data fields, it can be quite confusing to give all possible pathways for the construction process. Here is what happens in detail when a constructor is called.
- All data fields are initialized to their default value (0, false, or null).
- All field initializers and initialization blocks are executed, in the order in which they occur in the class declaration.
- If the first line of the constructor calls a second constructor, then the body of the second constructor is executed.
- The body of the constructor is executed.
Naturally, it is always a good idea to organize your initialization code so that another programmer could easily understand it without having to be a language lawyer. For example, it would be quite strange and somewhat error prone to have a class whose constructors depend on the order in which the data fields are declared.
No comments:
Post a Comment