Programación Orientada a Objetos
Unidad 5 Paquetes
2
Temario
Paquetes como módulos La variable CLASSPATH Incluyendo una clase en un
paquete Estructura de directorios Clases públicas y no públicas Acceso y uso de paquetes La sentencia import Archivos .JAR
3
Paquete
Un paquete (packagepackage) es una colección de clases e interfaces relacionadas
Un paquete puede asociarse al concepto de módulo en software
Mecanismo de agrupación con dos propósitos principales: Evitar conflictos de nombres (un gran
problema al desarrollar código reusable) Control del nivel de acceso
(encapsulación)
4
Principales Paquetes de Java
java.applet java.awt java.beans java.io java.lang java.math java.net java.rmi
java.security java.sql java.text java.util javax.naming javax.print javax.swing javax.xml
5
Jerarquía de Paquetes
Los nombres de paquetes son jerárquicos Ejemplo: java.awt.eventjava.awt.event
Las clases deben residir en un subdirectorio que mapea el nombre del paquete Ejemplo: Una clase que pertenece al
paquete java.awt.eventjava.awt.event debe estar ubicada en el subdirectorio java\awt\eventjava\awt\event
Los subdirectorios donde comienzan los paquetes pueden estar ubicados en cualquier parte del sistema de archivos
6
La variable classpath
La variable classpath classpath es utilizada para indicar la raíz de los paquetes que se usarán durante la compilación/ejecución
Ej. javc/java –classpath directorio1;directorio2;… Programa.java
7
1. Para agregar una clase a un paquete se utiliza la sentencia packagepackage como la primera sentencia del archivo fuente (convención para el nombre del paquete: dominio de la empresa invertido + sistema + subsistema + …)
package cl.sii.renta;public class Empresa { // implementación de la clase}
2. Se almacena la clase en un subdirectorio que mapea el nombre del paquete
Clases en un Paquete
8
Estructura de Directorios
La empresa Taranis tiene un paquete gráfico con la clase Rectangle
El archivo puede tener una clase pública y varias no públicas; el compilador genera los archivos .class
9
Clases Públicas y No Públicas
Una clase debe declararse publicpublic para ser accesible por clases de otros paquetes
package cl.sii.renta;public class Empresa { // implementación de la clase}
Una clase no pública sólo es accesible por otras clases del mismo paquete
10
Acceso a Paquetes
Una clase tiene acceso directo a: Clases que se encuentran en el
paquete java.lang (ej: String) Otras clases del mismo paquete
Hay dos formas de acceder a clases que se encuentran en otros paquetes: Usar nombres de clases totalmente
calificados Utilizar la sentencia importimport
11
Nombres Calificados
Ejemploclass MiApp { public static void main(String[] args) {
com.msoft.math.Matrice m; m = new com.msoft.math.Matrice(); ...}
} Si CLASSPATH está definida así:
set CLASSPATH=C:\java\classes;C:\lib;. ... entonces la clase Matrice es buscada
en los siguientes directorios: C:\java\classes\com\msoft\math C:\lib\com\msoft\math .\com\msoft\math
12
Sentencia import
Facilita la referencia a clases de un paquete
Permite que las clases de un paquete sean referenciadas solamente por el nombre de la clase
Es posible importar: una clase específica de un paquete
import com.msoft.math.Matrice; todas las clases de un paquete
import com.msoft.math.*;
13
Sentencia import
Ejemploimport com.msoft.math.*;class MiApp { public static void main(String[] args) {
Matrice m = new Matrice(); ...}
} Si CLASSPATH está definida así:
set CLASSPATH=C:\java\classes;C:\lib;. ... entonces la clase Matrice es buscada
en los siguientes directorios: C:\java\classes, C:\lib, . C:\java\classes\com\msoft\math, C:\lib\com\
msoft\math, .\com\msoft\math
14
El Paquete Default
Una clase que no utiliza la sentencia package forma parte del "paquete default", un paquete sin nombre
Es decir, todas las clases que no utilizan la sentencia package pertenecen a un mismo paquete
15
Archivos JAR y ZIP
Es posible agregar archivos .JAR.JAR (formato similar a .ZIP) y .ZIP.ZIP a la variable CLASSPATH
SET CLASSPATH=C:\java\classes;C:\j2ee14\lib\j2ee.jar
La estructura de directorios interna de los archivos .JAR y .ZIP es utilizada como una estructura de directorios normal
El comando jar, parte de los utilitarios de J2SDK, permite manejar archivos .JAR.
16
Resumen
Un paquete (packagepackage) es una colección de clases e interfaces relacionadas
Los nombres de paquetes son jerárquicos
La variable de ambiente CLASSPATHCLASSPATH es usada para indicar donde buscar los paquetes
La sentencia packagepackage es usada para incluir una clase en un paquete
La sentencia importimport hace más sencillo hacer referencia a clases en un paquete
Top Related