Re: import statement
On Jul 29, 3:29 pm, varun chadha <varun.con...@gmail.com> wrote:
when we use import statement such as:
import java.util.*
or any such, we are referring to the java/util/*.class classes. but
where is this package located in my jdk directory.
In the file rt.jar
One doesn't usually refer to Java classes with directory-style "slash"
notation:
java/util/Map.class
but with Java-style dotted class notation:
java.util.Map
Also i [sic] dont need to
specify the CLASSPATH if i [sic] directly compile my source file on
commandprompt as:
c:\{mydirectoryname}> javac Hello.java
so how is java.util.* accessed directly because as far as i know this
is not the absolute path?
Actually, you get a classpath automatically when you don't specify
one. It comprises the current directory.
You should always place your own classes in a package.
The 'java' and 'javax' classes are included via the bootstrap class
path, not the regular one. There is information about this on
java.sun.com. Check out the tools page and the section on how the
classpath is determined.
one more thing-
import statement works non-recursively. i.e we have to write two
seperate statements:
import javax.servlet.*;
import javax.servlet.http.*;
That is because packages are namespaces, not hierarchies.
so for following directory structure:
javacode/
Hello.class
otherclasses/
Welcome.class
is this statement wrong in Hello.java:-
import Welcome.class;
Do not think about directories. Classes may or may not be stored in
files in a directory tree. Think about packages.
Class 'Welcome' is in the package 'otherclasses', assuming that
'javacode' is in your classpath. So the import in 'Hello' would be
import otherclasses.Welcome;
'Hello' should be in a named package, too.
--
Lew