<< Chapter < Page | Chapter >> Page > |
Stated more simply ...
Stated more simply, an object of the ArrayList class can be used as a replacement for an array object. An ArrayList object knows how to increase its capacity on demand, whereas the capacity of a simple array object cannot changeonce it is instantiated.
An ArrayList object
The following statement instantiates a new object of the ArrayList class, with an initial capacity for one element. The initial capacity is determined bythe int value passed to the constructor when the object is instantiated.
java.util.ArrayList ref =
new java.util.ArrayList(1);
Back to the primary purpose ...
Getting back to the primary purpose of this program, what is the meaning of the term java.util that appears ahead of the name of the class, ArrayList ?
Avoiding name conflicts
One of the age-old problems in computer programming has to do with the potential for name conflicts. The advent of OOP and reusable code didn't causethat problem to go away. If anything, it made the problem worse.
For example, you and I may work as programmers for separate companies named X and Y. A company named Z may purchase our two companies and attempt to merge thesoftware that we have written separately. Given that there are only a finite number of meaningful class names, there is a good possibility that you and I mayhave defined different classes with the same names. Furthermore, it may prove useful to use both of the class definitions in a new program.
Put class files in different directories
Sun's solution to the problem is to cause compiled class files to reside in different directories. Simplifying things somewhat, if your compiled file for aclass named Joe is placed in a directory named X , and my compiled file for a different class named Joe is placed in a directory named Y , then source code in the same Java program can refer to those two class files as X.Joe and Y.Joe . This scheme makes it possible for the Java compiler and the Java virtual machineto distinguish between the two files having the name Joe.class .
The java and util directories
Again, simplifying things slightly, the code in the above fragment refers to a file named ArrayList.class , which is stored in a directory named util , which is a subdirectory of a directory named java .
The directory named java is the root of a directory tree containing a very large number of standard Java class files.
(As an aside, there is another directory named javax, which forms the root of another directory tree containing class files considered to be extensionsto the standard class library.)
Many directories (packages)
Stated simply, a Java package is nothing more or less than a directory containing class files.
The standard and extended Java class libraries are scattered among a fairly large number of directories or packages (a quick count of the packages in the JDK 1.3 documentation indicates that there are approximately 65 standard andextended packages) .
A fully-qualified class name
With one exception, whenever you refer to a class in a Java program, you must provide a fully-qualified name for the class, including the path through thedirectory tree culminating in the name of the class. Thus, the following is the fully-qualified name for the class whose name is ArrayList .
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?