Java Reference
In-Depth Information
andcanbesubsequentlyinitializedbyassigningvaluestothemintheirdeclarationsvia
instance field initializers ; for example, int numDoors = 4; .
Anotheraspectofinitializationthat'salreadybeendiscussedistheconstructor,which
is used to initialize an object, typically by assigning values to various instance fields,
butisalsocapableofexecutingarbitrarycode,suchascodethatopensafileandreads
the file's contents.
Javaprovidestwoadditionalinitializationfeatures:classinitializersandinstanceini-
tializers. After introducing you to these features, this section discusses the order in
which all of Java's initializers perform their work.
Class Initializers
Constructorsperforminitializationtasksforobjects.Theircounterpartfromaclassini-
tialization perspective is the class initializer.
A class initializer isa static -prefixedblockthatisintroducedintoaclassbody.It
isusedtoinitializealoadedclassviaasequenceofstatements.Forexample,Ionceused
aclassinitializertoloadacustomdatabasedriverclass. Listing2-16 showstheloading
details.
Listing 2-16. Loading a database driver via a class initializer
class JDBCFilterDriver implements Driver
{
static private Driver d;
static
{
// Attempt to load JDBC-ODBC Bridge Driver and re-
gister that
// driver.
try
{
Class
c
=
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
d = (Driver) c.newInstance();
DriverManager.registerDriver(new
JDBCFilter-
Driver());
}
catch (Exception e)
 
Search WWH ::




Custom Search