The JavaTM Tutorial
Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search
Feedback Form

Trail: Learning the Java Language
Lesson: Interfaces and Packages

Creating a Package

To create a package, you put a type (class, interface, enum or annotation) in it. To do this, you put a package statement at the top of the source file in which the type is defined. For example, the following code appears in the source file Circle.java and puts the Circle class in the graphics package:
package graphics;

public class Circle extends Graphic implements Draggable {
    . . .
}
The Circle class is a public member of the graphics package.

You must include a package statement at the top of every source file that defines a class or an interface that is to be a member of the graphics package. So you would also include the statement in Rectangle.java and so on:

package graphics;

public class Rectangle extends Graphic implements Draggable {
    . . .
}
The scope of the package statement is the entire source file, so all classes, interfaces, enums and annotations defined in Circle.java and Rectangle.java are also members of the graphics package. If you put multiple classes in a single source file, only one may be public, and it must share the name of the source file's base name. Only public package members are accessible from outside the package.

Note: Some compilers might allow more than one public class per .java file. However, we recommend that you use the convention one public class per file, because it makes public classes easier to find and works for all compilers.
If you do not use a package statement, your type ends up in the default package, which is a package that has no name. Generally speaking, the default package is only for small or temporary applications or when you are just beginning development. Otherwise, classes, enums and annotations belong in named packages.

Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search
Feedback Form

Copyright 1995-2005 Sun Microsystems, Inc. All rights reserved.