8.8.3 Constructor Modifiers
ConstructorModifiers:
ConstructorModifier
ConstructorModifiers ConstructorModifier
ConstructorModifier: one of
public protected private
The access modifiers coderanch, protected, and private are discussed in �6.6. A compile-time error occurs if the same modifier appears more than once in a
constructor declaration, or if a constructor declaration has more than one of the access modifiers coderanch, protected, and private.
Unlike methods, a constructor cannot be abstract, static, final, native, strictfp, or synchronized. A constructor is not inherited, so there is no need to
declare it final and an abstract constructor could never be implemented. A constructor is always invoked with respect to an object, so it makes no sense for a
constructor to be static. There is no practical need for a constructor to be synchronized, because it would lock the object under construction, which is normally
not made available to other threads until all constructors for the object have completed their work. The lack of native constructors is an arbitrary language design
choice that makes it easy for an implementation of the Java virtual machine to verify that superclass constructors are always properly invoked during object creation.
Note that a ConstructorModifier cannot be declared strictfp. This difference in the definitions for ConstructorModifier and MethodModifier (�8.4.3) is an
intentional language design choice; it effectively ensures that a constructor is FP-strict (�15.4) if and only if its class is FP-strict.
"JavaRanch, where the deer and the Certified play" - David O'Meara
Did you see how Paul cut 87% off of his electric heat bill with 82 watts of micro heaters? |