-
It means calling code outside the class, and passing
this.
That code will assume that the instance is fully initialized, and may break if it isn’t.
Similarly, your class might assume that some methods will only be called after the instance is fully initialized, but the external code is likely to break those assumptions. -
finalmethods cannot be overridden, so you can trust them to not passthisaround.
If you call any non-finalmethod in the constructor for a non-finalclass, a derived class might override that method and passthisanywhere.
Even when you callfinalmethods, you still need to make sure that they are safely written – that they do not passthisanywhere, and that themselves don’t call any non-finalmethods.