Download Paquetes

Document related concepts
no text concepts found
Transcript
Programación Orientada a
Objetos
Unidad 5
Paquetes
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
2
Paquete



Un paquete (package) 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)
3
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
4
Jerarquía de Paquetes

Los nombres de paquetes son jerárquicos


Las clases deben residir en un subdirectorio
que mapea el nombre del paquete


Ejemplo: java.awt.event
Ejemplo: Una clase que pertenece al paquete
java.awt.event debe estar ubicada en el
subdirectorio java\awt\event
Los subdirectorios donde comienzan los
paquetes pueden estar ubicados en cualquier
parte del sistema de archivos
5
La variable classpath


La variable 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
6
Clases en un Paquete
1. Para agregar una clase a un paquete se utiliza
la sentencia package 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
7
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
8
Clases Públicas y No Públicas

Una clase debe declararse public 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
9
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 import
10
Nombres Calificados

Ejemplo
class 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
11
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.*;
12
Sentencia import

Ejemplo
import 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
13
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
14
Archivos JAR y ZIP

Es posible agregar archivos .JAR (formato
similar a .ZIP) y .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.
15
Resumen





Un paquete (package) es una colección de
clases e interfaces relacionadas
Los nombres de paquetes son jerárquicos
La variable de ambiente CLASSPATH es usada
para indicar donde buscar los paquetes
La sentencia package es usada para incluir
una clase en un paquete
La sentencia import hace más sencillo hacer
referencia a clases en un paquete
16