Escolar Documentos
Profissional Documentos
Cultura Documentos
James Tam
Packages
A collection of related classes that are bundled together
Used to avoid naming conflicts for classes
Also it allows for only some implementation details to be
exposed to other classes in the package (only some classes
can be instantiated outside of the package)
org.omg.CORBA
java.lang
Object
Object
Exception
Error
String
StringBuffer
System
James Tam
pack3.OpenFoo.toString()
class name
method name
James Tam
Importing Packages
Importing all classes from a package
Format
import <package name>.*;
Example
import java.util.*;
James Tam
Default Package
If you do not use a package statement then the class
implicitly becomes part of a default package
All classes which reside in the same directory are part of the
default package for that program.
James Tam
:
home
package name
233
class name
examples
method name
packages
packageExample
pack3
OpenFoo.java
ClosedFoo.java
James Tam
com.tamj .games
.productivity
James Tam
ca.ucalgary.cpsc.tamj .games
.productivity
James Tam
Package name
Package name
James Tam
Packages An Example
The complete example can be found in the directory:
/home/233/examples/packages/packageExample
(But you should have guessed the path from the package name)
packageExample
pack1
IntegerWrapper
pack2
IntegerWrapper
pack3
ClosedFoo
Driver
OpenFoo
James Tam
(Unnamed)
pack2
-Driver
+IntegerWrapper
pack3
+OpenFoo
-ClosedFoo
James Tam
James Tam
James Tam
James Tam
10
James Tam
James Tam
11
Protected #
Can access the attribute/method in the methods of the class where its
originally defined or the subclasses of that class.
Public +
Can access attribute/method anywhere in the program
James Tam
Accessible to
Same class
Class in
same
package
Access level
Public
Protected
Package
Private
Subclass in a Not a
different
subclass,
package
different
package
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
No
No
Yes
No
No
No
James Tam
12
James Tam
13