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