Classes are the fundamental building blocks of a
Java program. The most important thing to understand about a class is that it
defines a new data type. Once defined, this new type can be used to create
objects of that type. Thus, a class is a template for an object, and an
object is an instance of a class. Because an object is an instance of a
class, you will often see the two words object and instance used
interchangeably.
A class is declared by use of the class keyword. The
classes that have been used up to this point are actually very limited examples
of its complete form. Classes can (and usually do) get much more complex. A
simplified general form of a class definition is shown here:
|
class classname { type instance-variable1; type instance-variable2; …. type instance-variableN; type methodname1(parameter-list) { // body of method } type methodname2(parameter-list) { // body of method } // ... type methodnameN(parameter-list) { // body of method } } |
The data, or variables, defined within a class are
called instance variables. The code is
contained within methods. Collectively, the methods
and variables defined within a class are called members of the class. In most
classes, the instance variables are acted upon and accessed by the methods
defined for that class. Thus, as a general rule, it is the methods that
determine how a class’ data can be used.
Example: a simple class named cricket
|
class Cricket { int overs; Int wickets ; int runs; } |
As stated, a class defines a new type of data. In
this case, the new data type is called Cricket. You will use this name to
declare objects of type Cricket. It is important to remember that a class
declaration only creates a template; it does not create an actual object. Thus,
the preceding code does not cause any objects of type Cricket to come into
existence.
To actually create a Cricket object, you will use a
statement like the following:
Cricket mycricket = new Cricket
(); // create a Cricket object called mycricket.
Declaring Objects
As just
explained, when you create a class, you are creating a new data type. You can
use this type to declare objects of that type. However, obtaining objects of a
class is a two-step process.
First, you must
declare a variable of the class type. This variable does not define an object. Instead,
it is simply a variable that can refer to an object.
Second, you must
acquire an actual, physical copy of the object and assign it to that variable.
You can do this using the new operator. The new operator
dynamically allocates (that is, allocates at run time) memory for an object and
returns a reference to it. This reference is, more or less, the address in
memory of the object allocated by new. This reference is then stored in
the variable. Thus, in Java, all class objects must be dynamically allocated.
Let’s look at the details of this procedure.
The following line is used to declare an object of type Box:
Box mybox = new Box();
This statement combines the two steps just described. It can be
rewritten like this to show each step more clearly:
Box mybox; // declare reference to object
mybox = new Box(); // allocate a Box object
The first line declares mybox as a reference
to an object of type Box. After this line executes, mybox contains the
value null, which
indicates that it does not yet point to an actual object. Any attempt to use mybox at this point
will result in a compile-time error. The next line allocates an actual object
and assigns a reference to it to mybox. After the second line executes, you
can use mybox
as
if it were a Box object. But in reality, mybox simply holds
the memory address of the actual Box object.
No comments:
Post a Comment