martes, 31 de enero de 2012

Applet

Un applet es una clase Java que se incrusta en una página HTML y que se descarga y ejecuta con un navegador. Es un tipo específico de contenedor de tecnología Java.

Para ejecutar un applet, el navegador lo carga y después invoca un método init para realizar la inicialización básica del applet. Cuando termina init, el navegador invoca el método start. Este método se invoca en general cuando el applet se hace visible. El método stop se invoca cuando el applet se hace invisible, esto es, cuando el navegador es minimizado o sigue un enlace a otro URL.

Normalmente, un applet se ejecuta dentro de un navegador aunque, para simplificar y acelerar el desarrollo, se usa la herramienta appletviewer diseñada para visualizar applets. Es una aplicación Java que permite la ejecución de applets sin utilizar un navegador. Se puede considerar como un navegador mínimo.

Otros elementos del applet:
  • getDocumentBase -->Devuelve un objeto URL que describe el directorio de la página actual del navegador, donde reside el fichero HTML con la etiqueta applet.

  • getCodeBase -->Devuelve un objeto URL que describe el directorio fuente del fichero de la clase Applet. Frecuentemente es el mismo que el directorio del fichero HTML, pero no siempre es así.

  • getImage(URL base, String target) -->Extrae una imagen del fichero indicado por target localizado en el URL especificado por base. El valor devuelto es una instancia de la clase Image.

  • getAudioClip(URL)--> base, String target) Extrae un sonido del fichero indicado por target localizado en el URL especificando por base. El valor devuelto es una instancia de la clase java.applet.AudioClip.La manera más fácil de escuchar un sonido es usando alguno de los métodos play de la clase Applet.También tenemos loop que reproduce el sonido indefinidamente y stop que finaliza la reproducción del sonido.

En un fichero HTML, una etiqueta "< param >" en un contexto "< applet >" puede pasar información de configuración al applet. Estos parámetros se recogen desde el código del applet por medio de getParameter(nombre). Si el nombre del parámetro no se puede encontrar, devuelve null. El tipo del parámetro es siempre String. Si se desea de otro tipo, se debe convertir.

jueves, 26 de enero de 2012

Excepciones

Las excepciones se generan en la máquina virtual de Java, como respuesta a una condición inesperada, o en el código, como resultado de la ejecución de una instrucción throw.

Una excepción puede ocurrir por dos razones:
  1. Porque se produzca un error en tiempo de ejecución en la máquina virtual de Java: en tal caso, se crea una instancia de un objeto excepción (cualquier objeto que descienda de la clase java.lang.Throwable). A estas excepciones se les denomina excepciones no verificadas.
  2. Porque un método genere explícitamente un objeto que descienda de la clase Throwable (generable): los objetos generables se generan mediante la palabra clave throw. Las excepciones generadas de esta forma se denominan excepciones verificadas.
Vamos a explicar más detalladamente los tipos de excepciones:
  • Excepciones no verificadas-->se generan por errores en tiempo de ejecución. Son no verificadas ya que el compilador no es capaz de determinar si el código gestiona la excepción debido a que un error en tiempo de ejecución puede ocurrir en cualquier parte de un programa y por multitud de razones.Las clases de excepción que descienden de las clases RuntimeException y Error son excepciones no verificadas.
  • Excepciones verificadas -->Las excepciones son verificadas por dos razones:
  1. El compilador comprueba durante la compilación que el método incluye código para generar una excepción de tipo generable (las excepciones no verificadas no necesitan que las declaremos).
  2. El compilador obliga a que el código que llame a uno de estos métodos incluya la llamada en una instrucción try-catch y que proporcione un bloque catch para capturar la excepción.
Las clases de excepción que descienden de las clases Throwable (Error y Exception) son excepciones verificadas.

domingo, 22 de enero de 2012

Clases animadas

La tecnología Java permite declarar una clase dentro de otra. Éstas son llamadas clases anidadas. La clase que contiene estas clases anidadas recibe el nombre de clase exterior o contenedora.


Una clase anidada tiene acceso a todos los atributos y métodos de la clase contenedora. Una clase anidada puede ser declarada public, protected, private o package (por defecto). Por el contrario, la clase contenedora sólo puede ser declarada public o package (por defecto). También, a diferencia de las clases contenedoras, una clase anidada puede ser declarada estática (static).
Las clases anidadas pueden ser divididas en dos categorías:

  • Clases anidadas no estáticas ( clases internas) --> Las clases internas tienen acceso directo a los métodos y los campos de la clase exterior, así como a los métodos y los campos que hereda de su superclase. Pero, debido a que una clase interna se ha cargado sólo dentro del contexto de una instancia de su clase exterior, no podemos definir ningún miembro estático.

    Tenemos dos tipos diferente de clases anidad no estáticas:

  1. Clases internas locales: Una clase interna local (a veces llamada clase local), es una clase declarada dentro de un bloque de código en el cuerpo de un método. Una clase interna local sólo es visible dentro del bloque de código en el que se ha definido.

  2. Clases internas anónimas → Las clases internas anónimas (también llamada clases anónimas), son muy similares a las clases internas locales, pero sin nombre. En las clases internas locales primero se define la clase y luego se crean uno o más objetos. En las clases anónimas se unen estos dos pasos. Como la clase anónima no tiene nombre, sólo se puede crear un único objeto, ya que las clases anónimas no pueden definir constructores. Se utilizan en clases con poco código.Siempre deben ser clases interna e implícitamente finales.La declaración y el uso de la clase son adyacentes.Nunca pueden ser abstractas Nunca pueden ser clases estáticas.Para instanciar una clase interna desde algún lugar que no sea la clase exterior, primero debemos instanciar la clase exterior, y a continuación, instanciar la clase interior.

  • Clases anidadas estáticas → Las clases anidadas estáticas sólo pueden ser creadas dentro de otra clase al máximo nivel, es decir, directamente en el bloque de definición de la clase contenedora y no en un bloque más interno. Este tipo de clases anidadas se definen utilizando la palabra static.Debido a su carácter "estático", estas clases no pueden acceder a los miembros de su clase contenedora directamente, sino a través de la instancia de un objeto.Puede acceder a una clase anidada estática utilizando una referencia que remite a la clase: Outer.StaticNested

miércoles, 18 de enero de 2012

Programación Orientada a Objetos

Tienes 3 pilares básicos:
  1. Encapsulación -->un método pueda usar a otro método para recibir un resultado sin que el primer método sepa como trabaja el segundo.
  2. Polimorfismo -->diferentes formas en que una variable puede apuntar a un objeto.
  3. Herencia --> una clase puede heredar atributos de la clase que hereda.

lunes, 16 de enero de 2012

Encapsulación

Este concepto consiste en la ocultación del estado o de los datos miembro de un objeto, de forma que sólo es posible modificar los mismos mediante los métodos definidos para dicho objeto.

Cada objeto está aislado del exterior, de forma que la aplicación es un conjunto de objetos que colaboran entre sí mediante el paso de mensajes invocando sus operaciones o métodos. De esta forma, los detalles de implementación permanecen "ocultos" a las personas que usan las clases, evitando así modificaciones o accesos indebidos a los datos que almacenan las clases.

Además, el usuario de la clase no se tiene que preocuparse de cómo están implementados los métodos y propiedades, concentrándose sólo en cómo debe usarlos.

La encapsulación es una de las principales ventajas que proporciona la programación orientada a objetos.