A class can be designed to prevent code outside the class declaration from creating instances of the class by declaring at least one constructor, to prevent the creation of an implicit constructor, and declaring all constructors to be private
. A
public
class can likewise prevent the creation of instances outside its package by
declaring at least one constructor, to prevent creation of a default constructor with
public
access, and declaring no constructor that is public
.
class ClassOnly { private ClassOnly() { } static String just = "only the lonely"; }
the class ClassOnly
cannot be instantiated, while in the example:
package just;
public class PackageOnly { PackageOnly() { } String[] justDesserts = { "cheesecake", "ice cream" }; }
the class PackageOnly
can be instantiated only within the package just
, in
which it is declared.
Bow, bow, ye lower middle classes!
Bow, bow, ye tradesmen, bow, ye masses!
Blow the trumpets, bang the brasses!
Tantantara! Tzing! Boom!
W.S. Gilbert, Iolanthe