Download Lenguaje de Programación II

Document related concepts
no text concepts found
Transcript
Lenguaje de
Programación II
Manejo de Paquetes
Corporación Universitaria del Caribe CECAR
Introducción
◦ Cuando hacemos aplicaciones que involucran muchas clases,
suele suceder que nos perdemos al buscar la ubicación de las
clases o se encuentran en el mismo lugar clases que no tienen
relación unas con otras.
◦ Cada vez tenemos más y más clases. Meterlas todas en el
mismo directorio no suele ser bonito.
◦ Es mejor hacer grupos de clases, de forma que todas las
clases que traten de un determinado tema o estén
relacionadas entre sí vayan juntas.
Definición de paquetes
◦ Un Paquete en Java es un contenedor de clases que permite
agrupar las distintas partes de un programa cuya
funcionalidad tienen elementos comunes.
◦ Son el mecanismo por el que Java permite agrupar clases,
interfaces, excepciones y constantes.
◦ Un paquete no es más que un conjunto o ruta de directorios
en los cuales se almacenaran nuestras clases, quedando en un
mismo directorio las clases que tengan relación entre ellas.
Ventajas del uso de paquetes
•Agrupamiento de
clases con
características
comunes.
1
2
•Reutilización de
código.
•Mayor seguridad al
existir niveles de
acceso.
3
4
•Incrementa la
facilidad para
localizar y controlar
los accesos a las
clases e interfaces
•resuelven el
problema del
conflicto entre los
nombres de las
clases.
5
Ejemplos de paquetes
Ejemplos de paquetes
Contenido de los paquetes
Interfaces
Otros
paquetes
Clases
Paquete
Archivos con
recursos
adicionales
(imágenes)
Creación de un paquete
(Declaración)
• se utiliza la sentencia package seguida del nombre del paquete
que estemos creando
package NombrePaquete;
• la sentencia de declaración de paquete ha de ser la primera en un
archivo fuente Java
• Por ejemplo, para incluir la clase Rectangulo dentro del paquete
geometria:
Creación de un paquete
(Nomenclatura)
– Por convención se recomienda usar el nombre invertido del
dominio de Internet y si hace falta se le agrega la región
com.compañia.nombrePaquete
com.compañia.region.nombrePaquete
se propone asignar como paquetes y subpaquetes el nombre de dominio dentro
de Internet.
Ejemplo: para un dominio que se llamase japon.magic.com, un nombre apropiado
sería
com.magic.japon.paquete.
Uso de un paquete
– se utiliza la sentencia import seguida del nombre de paquete o
paquetes a importar.
Importar todos
los elementos
• Para importar todas las clases e interfaces de un
paquete se utiliza el metacaracter *
• import PaquetePrueba.*;
Importar uno o
algunos de los
elementos de un
paquete.
• import Paquete.Subpaquete1.Clase1;
Paquetes estándar
Paquete
Descripción
java.applet
Contiene las clases necesarias para crear applets que se ejecutan en la ventana del
navegador
java.awt
Contiene clases para crear una aplicación GUI independiente de la plataforma
java.io
Entrada/Salida. Clases que definen distintos flujos de datos
java.lang
Contiene clases esenciales, se importa impícitamente sin necesidad de una sentencia
import.
java.net
Se usa en combinación con las clases del paquete java.io para leer y escribir datos en
la red.
java.util
Contiene otras clases útiles que ayudan al programador
Modificadores de acceso
/* Archivo A.java
Ejemplo que explica el nivel de acceso publico */
package p1;
public class A {
public int x = 10; // Atributo publico
}
/*Método publico */
public void visualizar() {
System.out.println("Valor de X en A" + x);
}
A nivel de Referencia
// Archivo B.java
package p1;
public class B {
public void prueba() {
A a = new A();
a.x = 20
a.visualizar();
}
}
// Archivo C.java
package p2;
import p1.*;
public class C {
public void prueba() {
A a = new A();
a.x = 20
a.visualizar();
}
}
A nivel de Herencia
O
K
O
K
// Archivo B.java
package p1;
public class B extends A{
public void pruebaB() {
x = 20;
visualizar();
}
}
//Archivo C.java
package p2;
import p1.*;
public class C extends A {
public void pruebaC() {
x = 20;
visualizar();
}
}
O
K
O
K
Modificadores de acceso
/* Archivo A.java
Ejemplo que explica el nivel de acceso paquete */
package p1;
public class A {
}
int x = 10; // Atributo de paquete
/*Metodo paquete */
void visualizar() {
System.out.println("Valor de X en A" + x);
}
A nivel de Referencia
// Archivo B.java
package p1;
public class B {
public void prueba() {
A a = new A();
a.x = 20
a.visualizar();
}
}
// Archivo C.java
package p2;
import p1.*;
public class C {
public void prueba() {
A a = new A();
a.x = 20
a.visualizar();
}
}
A nivel de Herencia
O
K
E
R
R
O
R
// Archivo B.java
package p1;
public class B extends A{
public void pruebaB() {
x = 20;
visualizar();
}
}
//Archivo C.java
package p2;
import p1.*;
public class C extends A {
public void pruebaC() {
x = 20;
visualizar();
}
}
O
K
E
R
R
O
R
Modificadores de acceso
/* Archivo A.java
Ejemplo que explica el nivel de acceso privado */
package p1;
public class A {
}
private int x = 10; // Atributo privado
/*Metodo privado */
private void visualizar() {
System.out.println("Valor de X en A" + x);
}
A nivel de Referencia
// Archivo B.java
package p1;
public class B {
public void prueba() {
A a = new A();
a.x = 20
a.visualizar();
}
}
// Archivo C.java
package p2;
import p1.*;
public class C {
public void prueba() {
A a = new A();
a.x = 20
a.visualizar();
}
}
A nivel de Herencia
E
R
R
O
R
E
R
R
O
R
// Archivo B.java
package p1;
public class B extends A{
public void pruebaB() {
x = 20;
visualizar();
}
}
//Archivo C.java
package p2;
import p1.*;
public class C extends A {
public void pruebaC() {
x = 20;
visualizar();
}
}
E
R
R
O
R
E
R
R
O
R
FIN