Fundamentos del lenguaje Java

prev.gif (997 bytes)home.gif (1054 bytes)next.gif (998 bytes)

Introducción

Clases y objetos

La herencia y el polimorfismo

Las excepciones

Pasando datos a una función

Las clases Vector y StringTokenizer

Archivos


El lenguaje Java se parece al lenguaje C++ de modo que un programador que conozca este lenguaje ha dado un gran paso adelante.

Sin embargo, existen también grandes diferencias entre ambos lenguajes. Un programador puede haber usado el lenguaje C++ como un lenguaje C mejorado sin haber usado para nada la Programación Orientada a Objetos. Sin embargo, Java es un lenguaje plenamente orientado a objetos, y para escribir el programa más simple hemos de definir una clase. Los tipos básicos de datos son similares, pero los arrays son distintos, y las cadenas de caracteres en Java son objetos de la clase String.

 

Introducción

Muchos lectores que hayan programado en algún lenguaje, comprenderán sin dificultad este capítulo. Sin embargo, se recomienda leerlo con atención ya que incluso en los aspectos básicos hay diferencias entre unos lenguajes y otros. En esta introdución aprenderemos aspectos básicos del lenguaje Java: la primera aplicación, los comentarios, los tipos básicos de datos, los operadores, las sentencias condicionales e iterativas.

Clases y objetos

Este capítulo es fundamental para entender la Programación Orientada a Objetos. Aprenderemos el concepto de clase, a crear objetos de una determinada clase, a acceder desde dichos objetos a los miembros dato y a los miembros función, a distinguir entre miembros estáticos y no estáticos, y muchas otras cosas más. Estudiremos dos entidades muy importantes en cualquier lenguaje de programación: los arrays, y las cadenas de caracteres o strings, además de otras clases importantes en lenguaje Java

La herencia y el polimorfismo

Este es otro de los aspectos fundamentales de la Programación Orientada a Objetos. Trataremos de la herencia, de la reutilización del código, del concepto de clase abstracta y su diferencia con el concepto de interface. El significado de polimorfismo y de enlace dinámico. Aprenderemos que todas las clases en Java descienden de la clase base Object, que proporciona una funcionalidad mínima. La utilidad de las clases y de los métodos finales.

La parte más difícil de entender es el polimorfismo, es decir, la técnica que permite pasar un objeto de una clase derivada a funciones que conocen el objeto solamente por su clase base.

Las excepciones

Los programadores en cualquier lenguaje se esfuerzan por escribir programas libres de errores. Sin embargo, es muy difícil que los programas reales se vean libres de ellos. Aunque el lenguaje Java es muy robusto, existen situaciones que pueden provocar un fallo en el programa, a estas situaciones se denominan excepciones. Vamos a ver cómo se capturan las excepciones estándar, y aprenderemos a definir nuestras propias excepciones, a lanzarlas cuando se produce una situación peculiar, y a capturarlas.

Pasando datos a una función

Pasar datos a una función es uno de las dificultades con las que se enfrenta un programador del lenguaje C++, ya que hay tres formas: por valor, por dirección y por referencia. En el lenguaje Java lo simplifica extraordinariamente, ya que todo se pasa por valor, pero los efectos son distintos, cuando se pasan tipos básicos de datos, de cuando se pasan objetos de una determinada clase.

También, hay una gran diferencia en el mecanismo que nos permite dupicar un objeto, o de crear un objeto que es idéntico a otro dado. En el lenguaje C++ se emplea el constructor copia, mientras que en el lenguaje Java se redefine la función miembro clone de la clase base Object.

Las clases Vector y StringTokenizer

Finalmente trataremos dos clases que son muy útiles para el programador: la clase Vector, y la clase StringTokenizer. La clase Vector es similar a un array, pero no pone límite en el número máximo de objetos que se pueden guardar. Además, nos proporciona un conjunto de métodos para acceder, añadir o eliminar elementos.

La clase StringTokenizer, nos permite dividir un string dado en trozos o tokens. Su utilidad se pone de manifiesto en el tratamiento de los datos que se introducen un un control área de texto.

Archivos

Este capítulo no es esencial para el estudio de los applets ya que por razones de seguridad los applets no pueden acceder a los archivos del ordenador cliente, por lo que puede ser omitido en una primera lectura de este curso.

Sin embargo, el lenguaje Java no está diseñado exclusivamente para crear applets que corren en una ventana del navegador, sino también aplicaciones como cualquier otra que corremos en los entornos Windows, Unix, Macintosh o Linux. Muchas aplicaciones tienen acceso a los dispositivos estándar y a los archivos en disco, por lo que el lenguaje Java define un conjunto de clases agrupadas en jerarquías que describen los distintos flujos de datos.

Una de las facetas más potentes del lengaje Java es la denominada serialización, que permite convertir los objetos en un flujo de bytes, marcando tan solo la clase que describe dichos objetos como Serializable. A su vez, esta característica del lenguaje nos permite reconstruir los objetos leyendo un flujo de datos que proviene de una fuente normalmente un archivo en disco o incluso de la propia Red.