21
Lenguaje de Lenguaje de Programación I Programación I Ing. Gerald Basurco Zapata Ing. Gerald Basurco Zapata

Paquetes (Java)

Embed Size (px)

Citation preview

Page 1: Paquetes (Java)

Lenguaje de Lenguaje de Programación IProgramación I

Ing. Gerald Basurco ZapataIng. Gerald Basurco Zapata

Page 2: Paquetes (Java)

• PAQUETES

Page 3: Paquetes (Java)

PaquetesPaquetes

Los paquetes Java son una característica más del lenguaje que nos permite organizar el código en grupos.

Los paquetes son grupos relacionados de clases e interfaces y proporcionan un mecanismo conveniente para manejar un gran juego de clases e interfaces y evitar los conflictos de nombres. Además de los paquetes de Java puede crear tus propios paquetes y poner en ellos definiciones de clases y de interfaces utilizando la sentencia package.

Page 4: Paquetes (Java)

Declarar PaquetesDeclarar Paquetes

La forma general de la declaración package es la siguiente:

package nombrePaquete;

donde nombrePaquete puede constar de una sola palabra o de una lista de nombres de paquetes separados por puntos.

Ejemplo:package miPaquete;

interface MiInterface{ }class MiClase{ }

Ejemplo:package nombre1.nombre2.miPaquete;

class TuClase { }

Page 5: Paquetes (Java)

Declarar PaquetesDeclarar Paquetes

Para utilizar una clase en nuestro código tenemos que escribir su nombre completo: paquete + clase.Pero existe otro mecanismo para facilitar la codificación que es el uso de la keyword: import.

Declaración de un import:

import nombre_del_paquete.*;import nombre_del_paquete.nombre_de_la_clase;

Los import se ubican entre la sentencia package y la definición de la clase.Las clases importadas de esta manera pueden ser referenciadas en el código directamente por su nombre de clase sin necesidad de escribir el paquete.Un import genérico (es decir, con el *) importa solo las clases de ese paquete, pero no de los subpaquetes.

Page 6: Paquetes (Java)

Declarar PaquetesDeclarar Paquetes

Al igual que las clases Java tienen un reflejo en el Sistema de Archivos (una clase Java equivale a un fichero texto de extensión *.java), lo mismo ocurre con los paquetes Java.

Los paquetes Java equivalen a directorios. Es decir, cada miembro del paquete (separado por puntos) se traduce a un directorio en el Sistema de Archivos.

Ejemplo:package edu.utp.sis;public class Test { … }

Page 7: Paquetes (Java)

Como utilizar las clasesComo utilizar las clases

Para utilizar una clase tenemos tres alternativas:

◦Utilizar su nombre completo: paquete + clase.

◦ Importar la clase: import paquete + clase.

◦ Importar el paquete completo: import paquete + *.

Un import no implica la inclusión de código como ocurre en un #include de C++. Simplemente son vías de acceso para buscar el código. El código se va cargando según se necesita

Page 8: Paquetes (Java)

Como utilizar las clasesComo utilizar las clases

public class UnaClase{private int param;public UnaClase(int param){this.param = param;}public void mostrar(){System.out.println("Valor: "+param);}}

No hay errores. Ambas clases están en el paquete por defecto y por tanto se encuentran.

public class Ejemplo{public static void main(String[] args){UnaClase c = new UnaClase(12);c.mostrar()}}

Page 9: Paquetes (Java)

Como utilizar las clasesComo utilizar las clases

package mipaquete;public class UnaClase{private int param;public UnaClase(int param){this.param = param;}public void mostrar(){System.out.println("Valor: "+param);}}

Hay errores. UnaClase está en un paquete distinto a Ejemplo y por tanto no la encuentra.

public class Ejemplo{public static void main(String[] args){UnaClase c = new UnaClase(12);c.mostrar();}}

Page 10: Paquetes (Java)

Como utilizar las clasesComo utilizar las clases

package mipaquete;public class UnaClase{private int param;public UnaClase(int param){this.param = param;}public void mostrar(){System.out.println("Valor: "+param);}}

No hay errores. Estamos referenciando a UnaClase a través de su nombre completo.

public class Ejemplo{public static void main(String[] args){mipaquete.UnaClase c = new mipaquete.UnaClase(12);c.mostrar();}}

Page 11: Paquetes (Java)

Como utilizar las clasesComo utilizar las clases

package mipaquete;public class UnaClase{private int param;public UnaClase(int param){this.param = param;}public void mostrar(){System.out.println("Valor: "+param);}}

No hay errores. Hemos añadido un import de la clase UnaClase.

import mipaquete.UnaClase;public class Ejemplo{public static void main(String[] args){UnaClase c = new UnaClase(12);}}

Page 12: Paquetes (Java)

Como utilizar las clasesComo utilizar las clases

package mipaquete;public class UnaClase{private int param;public UnaClase(int param){this.param = param;}}

No hay errores. Hemos añadido un import de todas las clases del paquete de UnaClase.

import mipaquete.*;public class Ejemplo{public static void main(String[] args){UnaClase c = new UnaClase(12);}}

Page 13: Paquetes (Java)

Como utilizar las clasesComo utilizar las clases

package mipaquete;public class UnaClase{private int param;public UnaClase(int param){this.param = param;}}

No hay errores. Las dos clases pertenecen al mismo paquete.

package mipaquete;public class Ejemplo{public static void main(String[] args){UnaClase c = new UnaClase(12);}}

Page 14: Paquetes (Java)

EjemploEjemplo

Page 15: Paquetes (Java)
Page 16: Paquetes (Java)
Page 17: Paquetes (Java)

Algunos paquetes de JAVAAlgunos paquetes de JAVA

java.lang Este paquete incluye las clases imprescindibles para que el lenguaje Java funcione como tal, es decir, clases como Object, Thread, Exception, System, Integer, Float, Math, Package, String, etc., que implementan la base del lenguaje. No es necesario importar nada desde ese paquete porque se carga por defecto.

java.util Este paquete es el segundo en importancia, ya que incluye muchas clases útiles como pueda ser Date (fecha) y, sobre todo, diversas clases que permiten el almacenamiento dinámico de información, como Vector, LinkedList, HashMap, etc..

java.applet Contiene la archifamosa clase Applet, que nos permite crear applets para verlos en nuestro navegador.

Page 18: Paquetes (Java)

Algunos paquetes de JAVAAlgunos paquetes de JAVA

java.awt Este paquete, cuyo nombre corresponde a las siglas de Abstract Windowing Toolkit, contiene las clases necesarias para crear interfaces de usuario, por medio de menús, botones, áreas de texto, cajas de confirmación, etc..

java.io Este paquete contiene las clases necesarias para realizar las operaciones de entrada/salida, ya sea a pantalla o a ficheros, clases heredadas de FileInputStream y FileOutputStream.

java.net Paquete que permite la programación de aplicaciones que accedan a bajo nivel a redes TCP/IP.

Page 19: Paquetes (Java)

Posibles ErroresPosibles Errores

Aunque no es frecuente, es posible que provoquemos ambigüedades en el uso de los imports, y por tanto errores de compilación.

¿Qué ocurre al usar una clase cuyo nombre existe a la vez en dos paquetes que hemos importado?¿Cuál de las dos clases es la que se debe utilizar?

En esos casos, hay que importar o referirse a la clase conflictiva mediante su identificador completo: paquete + clase.

Page 20: Paquetes (Java)

Posibles ErroresPosibles Errores

package mipaquete1;public class ClaseA{}

package mipaquete2;public class ClaseA{}

import mipaquete1.*;import mipaquete2.*;public class UnaClase

{public static void main(String[] args){

ClaseA a = new ClaseA();}

} Hay errores. Existe una ambigüedad en el uso de ClaseA.

Page 21: Paquetes (Java)

Posibles ErroresPosibles Errores

package mipaquete1;public class ClaseA{}package mipaquete2;public class ClaseA{}

import mipaquete1.ClaseA;import mipaquete2.*;public class UnaClase

{public static void main(String[] args){

ClaseA a = new ClaseA();}

} No hay errores. No hay ambigüedad en el uso de ClaseA.