Presentacion No.1 - Arbol de Clases [15!02!10]

30
PAQUTES EN JAVA Universidad Autónoma de Chihuahua

Transcript of Presentacion No.1 - Arbol de Clases [15!02!10]

Page 1: Presentacion No.1 - Arbol de Clases [15!02!10]

PAQUTES EN JAVA

Universidad Autónoma de Chihuahua

Page 2: Presentacion No.1 - Arbol de Clases [15!02!10]

Las Clases en JAVA

Las clases son el centro de la Programación Orientada a Objetos (OOP - Object Oriented Programming). Algunos de los conceptos más importantes de la POO son los siguientes:

•Encapsulacion: De esta forma se puede controlar el acceso y evitar un uso inadecuado• Polimorfismo: Los objetos de distitntas clases pertenecientes a una misma jerarquia pueden tratarse de forma general e indivualizada.•Herencia: Una clase puede derivar de otra (extends) y heredar todas sus variables y metodos

Page 3: Presentacion No.1 - Arbol de Clases [15!02!10]

Definiciones

•Clase Una clase es una agrupación de datos (variables o campos) y de funciones (métodos) que operan sobre esos datos. La definición de una clase se realiza en la siguiente forma: [public] class Classname { // definición de variables y métodos ... }•Objeto:Un objeto (en inglés, instance) es un ejemplar concreto de una clase. Las clases son como tipos de variables, mientras que los objetos son como variables concretas de un tipo determinado.

Page 4: Presentacion No.1 - Arbol de Clases [15!02!10]

Definiciones

•MetodoLos métodos son funciones definidas dentro de una clase. Salvo los métodos static o de clase, se aplican siempre a un objeto de la clase por medio del operador punto (.). Dicho objeto es su argumento implícito. Los métodos pueden además tener otros argumentos explícitos que van entre paréntesis, a continuación del nombre del método.

•ConstructorUn constructor es un método que se llama automáticamente cada vez que se crea un objeto de una clase. La principal misión del constructor es reservar memoria e inicializar las variables miembro de la clase.Los constructores no tienen valor de retorno (ni siquiera void) y su nombre es el mismo que el de la clase. Su argumento implícito es el objeto que se está creando.

Page 5: Presentacion No.1 - Arbol de Clases [15!02!10]

¿Qué es un Paquete?

Un paquete es una agrupación de clases. En la API de Java 1.1 había 22 paquetes; en Java 1.2 hay 59 paquetes, lo que da una idea del ?crecimiento? experimentado por el lenguaje.

Además, el usuario puede crear sus propios paquetes. Para que una clase pase a formar parte de un paquete llamado pkgName, hay que introducir en ella la sentencia:

package pkgName;

Page 6: Presentacion No.1 - Arbol de Clases [15!02!10]

¿Qué es un Paquete?

En Java, el codigo correspondiente a cualquier clase publica ha de estar definida en un fichero independiente con extension .java

El nombre del fichero ha de coincidir con el nombre de la clase.

Una vez compilada, una clase, sea publica o no, da lugar a un fichero con extencion .class en el que se almacenan los bytecodes correspondientes al codigo de la clase.

Cuando ejecutemos una aplicacion que utilice una clase particular, el fichero .class correspondiente a las clase debe ser accesible a partir del valor que tenga en ese momento la variable de entorno CLASSPATH.

Page 7: Presentacion No.1 - Arbol de Clases [15!02!10]

¿Qué es un Paquete?

•Las clases en Java se agrupan en paquetes.

•Todas las clases compiladas en el mismo directorio (carpeta) se consideran pertenecientes a un mismo paquete.

•El paquete al que pertenece una clase se indica al comienzo del fichero en el que se define la clase con la palabra reservada package

•El nombre del paquete ha de cumplir las mismas normas que cualquier otro identificador en Java

Page 8: Presentacion No.1 - Arbol de Clases [15!02!10]

¿Cómo funcionan los Paquetes?

Con la sentencia import packname; se puede evitar tener que utilizar nombres muy largos, al mismo tiempo que se evitan los conflictos entre nombres. Si a pesar de todo hay conflicto entre nombres de clases, Java da un error y obliga a utilizar los nombres de las clases cualificados con el nombre del paquete.

El importar un paquete no hace que se carguen todas las clases del paquete: sólo se cargarán las clases public que se vayan a utilizar. Al importar un paquete no se importan los subpaquetes. Éstos deben ser importados explícitamente, pues en realidad son paquetes distintos. Por ejemplo, al importar java.awt no se importa java.awt.event.

Page 9: Presentacion No.1 - Arbol de Clases [15!02!10]

¿Cómo funcionan los Paquetes?

La sentencia import permite abreviar los nombres de las clases, variables y métodos, evitando el tener que escribir continuamente el nombre del paquete importado. Se importan por defecto el paquete java.lang y elpaquete actual o por defecto (las clases del directorio actual).

Existen dos formas de utilizar import: para una clase y para todo un paquete: Import s.ceit.jgjalon.infor2.ordenar.QuickSort.class; import es.ceit.jgjalon.infor2.ordenar.*;

que deberían estar en el directorio: classpath\es\ceit\jgjalon\infor2\ordenar

Page 10: Presentacion No.1 - Arbol de Clases [15!02!10]

Paquetes de Utilidades

La biblioteca de clases estándar de Java incluye cientos de clases organizadas en multitud de paquetes. Por decir algunas:

•java.lang: Fundamental para el lenguaje. Incluye clases como String o StringBuffer. Clases centrales de la plataforma Java (números, cadenas y objetos). No es necesario incluir la sentencia import cuando se usan clases de este paquete

•java.io: Para la entrada y salida a través de flujos de datos, y ficheros del sistema.

Page 11: Presentacion No.1 - Arbol de Clases [15!02!10]

Paquetes de Utilidades

•java.util:Contiene colecciones de datos y clases, el modelo de eventos, facilidades horarias, generación aleatoria de números, y otras clases de utilidad.

•java.math: Clases para realizar aritmética con la precisión que se desee.

•java.text: Clases e interfaces para manejo de texto, fechas, números y mensajes de una manera independiente a los lenguajes naturales.

•java.security: Clases e interfaces para seguridad en Java: Encriptación RSA...

Page 12: Presentacion No.1 - Arbol de Clases [15!02!10]

Paquetes para el Desarrollo Grafico

•java.applet: Para crear applets y clases que las applets utilizan para comunicarse con su contexto.

•java.awt: Para crear interfaces con el usuario, y para dibujar imágenes y gráficos.

•javax.swing: Conjunto de componentes gráficos que funcionan igual en todas las plataformas que Java soporta. Se estudia en el capítulo "IV. Bibliotecas gráficas" de este tutorial.

Page 13: Presentacion No.1 - Arbol de Clases [15!02!10]

Paquetes para el Desarrollo Grafico

•javax.accesibility: Da soporte a clases de accesibilidad para personas discapacitadas.

•java.beans: Para el desarrollo de JavaBeans.

Page 14: Presentacion No.1 - Arbol de Clases [15!02!10]

Paquetes para el Desarrollo en Red

•java.net: Clases para aplicaciones de red.

•java.sql: Paquete que contiene el JDBC, para conexión de programas Java con Bases de datos.

•java.rmi: Paquete RMI, para localizar objetos remotos, comunicarse con ellos e incluso enviar objetos como parámetros de un objeto a otro.

Page 15: Presentacion No.1 - Arbol de Clases [15!02!10]

Paquetes para el Desarrollo en Red

•org.omg.CORBA: Facilita la posibilidad de utilizar OMG CORBA, para la conexión entre objetos distribuidos, aunque esté codificados en distintos lenguajes.

•org.omb.CosNaming : Da servicio al IDL de Java, similar al RMI pero en CORBA

Page 16: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.lang

Analizaremos algunas funciones que antes no vimos. En primer lugar, hay que decir que éste es uno de los paquetes más importantes de la API Java.

Abarca muchísimas clases e interfaces fundamentales para la programación Java, tanto que este paquete se incluye atomáticamente en nuestros programas. Su contenido es:

Interfaces:Cloneable

Comparable

Runnable

Page 17: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.lang

ClasesBoolean Byte Character Character.Subset Character.Unicode

Block

Class ClassLoader Compiler Double Float

InheritableThreadLocal

Integer Long Math Number

Object Packege Process Runtime RuntimePermission

SecurityManager

Short String StringBuffer System

thread ThreadGroup ThreadLocal Throwable Void

Page 18: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.lang

ExcepcionesArithmeticException ArrayIndexOutOfBoun

dsExceptionArrayStoreException ClassCastEception

ClassNotFoundException

ClassNotSupportedException

Exception IllegalAccessException

IllegalArgumentException

IllegalMonitorStateException

IllegalStateException

IllegalThreadStateException

IndexOutOfBoundsException

InstantiationException

InterruptedException

NegativeArraySizeException

NoSuchFieldException

NoSuchMethodException

NullPointerException

NumberFormatException

RuntimeException SecurityIndexOutOfBoundsException

UnsupportedOperationException

StringIndexOutOfBoundsException

Page 19: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.lang

ErroresAbstractMethodError ClassCircularityError ClassFormatError

Error ExceptionInInitializeError

IllegalAccessError

IncompatibleClassChangeError

InstantiationError InternalError

LinkageError NoClassDefFoundError NoSuchFieldError

NoSuchMethodError OutOfMemoryError StackOverflowError

ThreadDeath UnknowError UnsatisfiedLinkError

UnsupportedClassVersionError

UnsupportedClassVersionError

VerifyError

Page 20: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.util

InterfacesAbstractMethodError ClassCircularityError ClassFormatError

Error ExceptionInInitializeError

IllegalAccessError

IncompatibleClassChangeError

InstantiationError InternalError

LinkageError NoClassDefFoundError NoSuchFieldError

NoSuchMethodError OutOfMemoryError StackOverflowError

ThreadDeath UnknowError UnsatisfiedLinkError

UnsupportedClassVersionError

UnsupportedClassVersionError

VerifyError

Page 21: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.util

ClasesAbstractCollection

AbstractList AbstractMap AbstractSequentialList

AbstactSet

ArrayList Arrays BitSet Calendar Collections

Date Dictionary EventObject GregorianCalendar

HasMap

HashSet Hashtable LinkedList ListResourceBundel

Lcoale

Observable Properties PropertyPermission

PropertyResourceBundle

Random

ResourceBundle SimpleTimeZone Stack StringTokenizer Timer

TimerTask TimeZone TreeMap TreeSet Vector

Page 22: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.util

ExcepcionesConcurrentModificationException

EmptyStackException

MissingResourceException

NoSuchElementException

TooManyListenersException

Page 23: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.net

Java, como ya dijimos anteriormente, nació como lenguaje para la red y sólo sucesivamente se convirtió en un verdadero lenguaje de programación. Su papel de líder para la programación no se pone en duda y, por eso, pone a disposición del programador diferentes paquetes para llevar a cabo esta programación. Como el objetivo final del curso es programar Applet, tenemos que verlo aunque sea de modo superficial. El paquete es muy amplio y su contenido es el siguiente:

Page 24: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.net

InterfacesContentHandlerFactory

FileNameMap

SocketImplFactory

SocketOptions

URLStreamHandlerFactory

Page 25: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.net

ClasesAuthenticator ContentHandler DatagramSocket

DatagramPacket DatagramSocketImpl HttpURLConnection

InetAddress JarURLConnection MulticasSocket

NetPermission PasswordAuthentification ServerSocket

Socket SocketImpl SocketPermission

URL URLClassLoader URLConnection

URLDecoder URLEncoder URLStreamHandler

Page 26: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.net

ExcepcionesBindException ConnectException

MalformedURLException NoRouteToHostException

ProtocolException SocketException

UnknowHostException UnknowServiceException

Page 27: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.awt

El paquete Abstract Window Toolkit pone a disposición del programador una serie de clases e interfaces gráficas.El paquete java.awt incluye también unos subpaquetes que son: •java.awt.color •java.awt.datatransfer •java.awt.dnd •java.awt.event •java.awt.font •java.awt.geom •java.awt.im •java.awt.image •java.awt.image.renderable •java.awt.print

Page 28: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.awt

Analizaremos algunas funciones. Las clases del paquete swing han sido construidas sobre las clases awt. Swing es actualmente el paquete más utilizado para construir interfaces gráficas y las veremos enseguida.Awt incluye: Interfaces:•ActiveEvent, interfaces para sucesos que saben cómo se han activado.•Adjustable, interfaces para objetos que tienen un valor numérico entre una serie de valores.•Composite, interfaz que sirve para redactar las primitivas gráficas de awt.•CompositeContext, ambiente optimizado para las operaciones de composición de primitivas.•ItemSelectable, interfaz para objetos que incluyen un conjunto de item de los que pueden ser seleccionados cero o más de uno. (Generalmente se pueden seleccionar por lo menos y al máximo un item. Esta interfaz elimina esta limitación). •LayoutManager, interfaz para las clases que incluirán unos gestores de ajuste de página.•LayoutManager2, como arriba.•MenuContainer, superclase de todos los menús.•Paint, esta interfaz define los colores que hay que utilizar para las operaciones gráficas usando Graphics2D.

Page 29: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.awt

Interfaces:•ItemSelectable, interfaz para objetos que incluyen un conjunto de item de los que pueden ser seleccionados cero o más de uno. (Generalmente se pueden seleccionar por lo menos y al máximo un item. Esta interfaz elimina esta limitación). •LayoutManager, interfaz para las clases que incluirán unos gestores de ajuste de página.•LayoutManager2, como arriba.•MenuContainer, superclase de todos los menús.•Paint, esta interfaz define los colores que hay que utilizar para las operaciones gráficas usando Graphics2D.•PaintContext, ambiente optimizado para las operaciones de redacción de primitivas gráficas usando Graphics2D.

Page 30: Presentacion No.1 - Arbol de Clases [15!02!10]

El paquete java.awt

Interfaces:•ItemSelectable, interfaz para objetos que incluyen un conjunto de item de los que pueden ser seleccionados cero o más de uno. (Generalmente se pueden seleccionar por lo menos y al máximo un item. Esta interfaz elimina esta limitación). •LayoutManager, interfaz para las clases que incluirán unos gestores de ajuste de página.•LayoutManager2, como arriba.•MenuContainer, superclase de todos los menús.•Paint, esta interfaz define los colores que hay que utilizar para las operaciones gráficas usando Graphics2D.•PaintContext, ambiente optimizado para las operaciones de redacción de primitivas gráficas usando Graphics2D.