Programación Orientada a Objetos

Profesor: Ángel Roldán
Profesor: Ángel Roldán
Cursos Relacionados

Cursos de Java

¿Qué es Java?

Java fue diseñado por James Gosling, de Sun Microsystems, en 1990, como software para dispositivos electrónicos de consumo, como calculadoras y microondas. Inicialmente se llamó Oak (roble en inglés), aunque tuvo que cambiar debido a que dicho nombre ya estaba registrado por otra empresa.


Gosling observó que muchas de las características que ofrecían C o C++ para este tipo de dispositivos aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C++. Es decir, en lugar de tratar únicamente de optimizar las técnicas de desarrollo y dar por sentado la utilización de C o C++, el equipo de Gosling se planteó que tal vez estos lenguajes eran demasiado complicados como para conseguir reducir de forma apreciable la complejidad asociada a este campo. Por este motivo, su primera propuesta fue idear un nuevo lenguaje de programación lo más sencillo posible, con el objeto de que se pudiese adaptar con facilidad a cualquier entorno de ejecución. Basándose en el conocimiento y estudio de gran cantidad de lenguajes, ste grupo decidió recoger las características esenciales que debía tener un lenguaje de programación moderno y potente, pero eliminando todas aquellas funciones que no eran absolutamente imprescindibles.

El fracaso comercial de FirstPerson, la filial creada por Sun para este mercado, llevó al lenguaje al olvido. Tuvo que ser Bill Joy, cofundador de Sun y uno de los desarrolladores principales del sistema operativo Unix de Berkeley, quien lo sacara de él, ya que juzgó que Internet podría llegar a ser el campo de juego adecuado para disputar a Microsoftsu primacía casi absoluta en el terreno del software, y vio en Oak el instrumento idóneo para llevar a cabo estos planes. Para poderlo presentar en sociedad se tuvo que modificar el nombre de este lenguaje de programación y se tuvo que realizar una serie de modificaciones de diseño para poderlo adaptar al propósito mencionado. Y así Java fue presentado en sociedad en agosto de 1995.

El éxito de Java reside en varias de sus características. Java es un lenguaje sencillo , o todo lo sencillo que puede ser un lenguaje orientado a objetos, eliminando la mayor parte de los problemas de C++, que aportó su granito (o tonelada) de arena a los problemas de C. Es un lenguaje independiente de plataforma, por lo que un programa hecho en Java se ejecutará igual en un PC con Windows que en una estación de trabajo basada en Unix. También hay que destacar su seguridad, desarrollar programas que accedan ilegalmente a la memoria o realizar caballos de troya es una tarea propia de titanes.

Cabe mencionar también su capacidad multihilo, su robustez o lo integrado que tiene el protocolo TCP/IP, lo que lo hace un lenguaje ideal para Internet. Pero es su sencillez, portabilidad y seguridad lo que le han hecho un lenguaje de tanta importancia.

JDK para desarrolladores

La empresa Oracle ofrece gratuitamente la distribución de JDK (Java Development Kit). El JDK es un producto que permite crear aplicaciones en Java(tm). Este paquete incluye un conjunto de herramientas que para compilar, depurar, generar documentación y interpretar código escrito en Java.

Tenemos disponibles en el mercado diferentes versiones del JDK, la más reciente es la versión 1.7 que puedes descargarte de la pagina La página oficial de Oracle

Para poder ejecutar cualquier aplicación Java en cualquier sistema operativo es necesario tener instalado el JRE (Java RunTime Environment - Entorno de desarrollo de Java). El JRE se compone de herramientas necesarias como la máquina virtual dejava (java.exe) y el conjunto de librerías estándar de Java. El JDK incluye a JRE.

También veréis los SDK (Software Development Kit - kit de software de desarrollo). A partir de la versión 1.2 de Java al JDK se le empezó a llamar de estamanera. Así se oye hablar indistintamente de JDK o SDK.

Portabilidad

Tradicionalmente se han dividido los lenguajes en compilados e interpretados. Los primeros necesitan ser traducidos por un programa llamado compilador al lenguaje máquina, que es el que entiende el ordenador. Como ejemplo de estos lenguajes podríamos citar a C, C++, Visual Basic, Clipper.... Los interpretados, en cambio, son traducidos mientras se ejecutan, por ejemplo ASP o Perl, por lo cual no necesitan ser compilados. Así pues la diferencia entre esto lenguajes radica en la manera de ejecutarlos. Mientras que los compilados solo se compilan una vez y lo hacen pasando todo el programa a código máquina ( si da un error aunque sea en la ultima línea no podríamos ejecutar nada de nada), en el momento que lo hemos compilado correctamente se genera un archivo .exe que se puede ejecutar tantas veces como queramos sin tener que volver a compilar. Los interpretados en cambio, cada vez que los queramos ejecutar tendremos que interpretarlos línea a línea, es más lento, pero puede ocurrir un error en la ultima línea y a diferencia de los compilados, el programa se ejecuta justo hasta la línea que produce el error. Java está diseñado para que un programa escrito en este lenguaje sea ejecutado correctamente independientemente de la plataforma en la que se esté actuando (Macintosh, PC, UNIX). Esta portabilidad se consigue haciendo de Java un lenguaje medio interpretado medio compilado. ¿Cómo se come esto? Pues se coge el código fuente, se compila a un lenguaje intermedio cercano al lenguaje máquina pero i ndependiente del ordenador y el sistema operativo en que se ejecuta (llamado en el mundo Java bytecodes). Finalmente, se interpreta ese lenguaje intermedio por medio de un programa denominado máquina virtual de Java (JVM), que sí depende de la plataforma. Este esquema ya lo habían seguido otros lenguajes, como por ejemplo Visual Basic. Sin embargo, nunca se había empleado como punto de partida a un lenguaje multiplataforma ni se había hecho de manera tan eficiente. Cuando Java apareció en el mercado se hablaba de que era entre 10 y 30 veces más lento que C++. Ahora, con los compiladores JIT (Just in Time) se habla de tiempos entre 2 y 5 veces más lentos. Con la potencia de las máquinas actuales, esa lentitud puede ser asumible en muchos proyectos si se dispone de las ventajas de un lenguaje portable. De hecho el éxito ha sido tal, que Microsoft se ha visto forzada a crear una alternativa que no sólo sea multiplataforma sino también multilenguaje. Es la llamada plataforma .NET.

Sencillez

La sencillez de Java radica fundamentalmente en que es muy similar a la de C y C++, la sintaxis de Java la hereda de C, y la propiedad de orientado a Objetos de C++. Pero aun así es más sencillo que estos, puesto que , por ejemplo, elimina la idea de punteros de C (cuidado, el programador no podrá escribir punteros, aunque internamente Java utiliza direcciones de memoria). También facilita mucho la tarea de programar en Java la idea de recolector de basura. Este hilo se encarga de eliminar automáticamente los objetos que el programa ya no necesita, con lo cual podemos prescindir de los destructores de objetos que utilizábamos por ejemplo en C++.

Orientado a Objetos

Sin lugar a duda la característica principal del lenguaje que estamos estudiando es su orientación a Objetos. Los lenguajes tradicionales ,como C, basaban su programación en las funciones, y tienen una estructura secuencial. Es decir, podemos ir línea a línea por el código que así es como se ejecutará el programa. Sin embargo los lenguajes de programación orientados a objetos, como Java, se basan en los Objetos. Nosotros seremos capaces de crear una plantilla para de allí sacar nuestros objetos (son las denominadas Clases). Con esto se consigue una forma de programar mucho más semejante al mundo real. Nosotros partiremos de una idea real del mundo que nos rodea, y sacando o abstraeremos sus datos fundamentales y comunes podremos crear una clase (una clase por ejemplo podría ser Coche). La clase será una idea abstracta del mundo real. Cada instancia de esa clase (por ejemplo el Seat Ibiza que esta aparcado en frente de casa) será un objeto de esa clase. Todos los objetos participaran de la idea genérica de la clase.

Seguridad

En el lenguaje Java al principio como hemos comentado no tubo una gran respuesta, ni un gran éxito. Fue a raíz de la "moda" de Internet cuando realmente ha dado el salto a la fama. Así pues Java es un lenguaje que se utiliza muchísimo para acceder a otras maquina, por ello contiene diversas barreras para proteger estas máquinas. Por ejemplo, una de ellas es que no se puede acceder a los recursos donde se ejecuta el programa. También conseguimos gran seguridad gracias a las clases, ya que podemos hacer que estas no puedan tener hijos, para que así no se modifiquen.

Multiproceso

El lenguaje Java permite crear programas con capacidad multiproceso creando varios Threads o hilos de ejecución que se ejecutan en paralelo, consiguiendo así que un mismo programa pueda estar realizando varias tareas a la vez.

Instalación

El JDK (Java Development Kit) es un producto que permite crear aplicaciones en Java(tm). Este paquete incluye un conjunto de herramientas que para compilar, depurar, generar documentación y interpretar código escrito en Java.

Nota: Este entorno es un poco arisco al principio, todas las herramientas funcionan en modo texto sin entorno grafico, pero es ideal para aquellas personas que no han programado nunca en Java. Más adelante, y dependiendo de la aplicación que queramos desarrollar optaremos por unos programas más o menos sofisticados que también permiten compilar y interpretar el código Java. Casi todos dichos programas utilizan de fondo el motor JDK.

Tenemos disponibles en el mercado diferentes versiones del JDK, que puedes descargarte de la siguiente página Click aqui

Para poder ejecutar cualquier aplicación Java en cualquier sistema operativo es necesario tener instalado el JRE (Java RunTime Environment -Entorno de desarrollo de Java). El JRE se compone de herramientas necesarias como la máquina virtual de java (java.exe) y el conjunto de librerías estándar de Java. El JDK incluye a JRE.

También veréis los SDK (Software Development Kit - kit de software de desarrollo). A partir de la versión 1.2 de Java al JDK se le empezó a llamar de esta manera. Así se oye hablar indistintamente de JDK o SDK.

La instalación del JDK depende de la plataforma que estemos utilizando.

Windows

La instalación del JDK para plataformas Microsoft Windows debe ser de la siguiente manera:

Instalación: En la página de Descargas de Oracle debemos elegir la versión que se adapte a nuestro caso. En este ejemplo hemos descargado el SDK para Windows, como tenemos configurado Windows en castellano elegimos Windows (todos los lenguajes, Multilenguaje). Una vez hemos localizado el archivo ha descargar, hemos de seguir los siguientes pasos: Debemos comprobar que tengamos espacio en disco para el programa de instalación.

Nota: Si tenemos instalada alguna versión anterior de Java 2 SDK 1.6(por ejemplo alguna versión beta) deberemos desinstalarla.

Una vez hemos seguido todos estos pasos, podemos descargar el programa. Dependiendo de la conexión a internet podrá tardar más o menos. El archivo que estamos bajando es un ejecutable, así que cuando haya descargado completamente solo debemos darle doble click.

Nota: Si estas instalando Java en Windows 2000, Windows XP, Windows Vista o windows 7, deberás tener permisos de administrador para poder realizar este paso. Una vez ejecutado dicho archivo, comenzarán a descomprimirse los archivos que son necesarios para la instalación del JDK. Cuando acabe, se activará el botón Next, que hemos de presionar para ir a la siguiente pantalla.

La siguiente pantalla solo es una pantalla de presentación, también hemos de presionar Next

La siguiente pantalla son las licencias si queremos instalar Java, hemos de presionar Yes

La siguiente pantalla para elegir el directorio donde vamos a instalar el JDK.

Instalacion: directorio Observar en la parte izquierda aparece el directorio por defecto donde lo instalará. Si no nos gusta ese directorio, podemos cambiar utilizando el botón que pone "Browse..." o "Buscar..." justo a la derecha.

Llegado a este punto aparece una pantalla muy importante. En esta pantalla vamos a elegir los componentes de JDK que queremos instalar. Si tenéis suficiente espacio es recomendable que instaléis todas las opciones.

Instalacion: opciones, la siguiente pantalla os preguntará en que navegadores queréis instalar el plug-in de Java. Por defecto os aparecerán los navegadores que tengáis instalado en vuestro ordenador. Podéis instalarlo en todos, o solo en aquel que os interese. Las pantallas que quedan son únicamente la pantalla de instalación, veréis la barra de progreso, conforme va instalando. Una vez llegado al final os aparecerá la ultima pantalla en la que se pregunta si deseáis leer el archivo README.txt ( que es optativo). Y presionamos el botón Finish ó Finalizar.

Bueno, una vez instalado el JDK lo que nos interesa es hacer algún ejercicio de prueba. Aún no es el momento. Ya comentamos que Java es un lenguaje compilado y interpretado (en ese orden), para poder crear y ejecutar un programa hemos de estudiar primero el compilador de java y luego el intérprete. El compilador de Java se encuentra en uno de los directorios que hemos generado cuando hemos instalado el JDK. Este directorio es el directorio bin. Si habéis instalado el JDK. Podéis observar que en este directorio todos los archivos que tiene son ejecutables. El archivo que nos va ha permitir compilar los programas escritos en Java es el fichero javac.exe. El fichero javac.exe es el encargado de transformar un programa escrito en Java ( lo que normalmente denominaremos código fuente, que es editable) en un programa cuya extensión es .class y esta compuesto por los denominados bytecodes. Este archivo .class esta compuesto de instrucciones que la Virtual Machine o VM ( maquina virtual de Java) puede entender e interpretar en diferentes plataformas o sistemas operativos. La verdad es que sin hacer nada más ya podríamos compilar un programa escrito en Java, pero si tenéis alguna noción del Sistema Operativo MS-DOS habréis advertido que únicamente los podremos compilar en el directorio donde se encuentra el archivo javac.exe.

Diagrama de la compilación

Para poder compilar los programas escritos en Java desde cualquier directorio lo que tenemos que hacer es modificar nuestra variable PATH del sistema. Con esto se consigue que si el sistema no encuentra la orden en el directorio actual, la va buscando por todos los directorios que hay establecidos en el PATH. Si añadimos en el path nuestro directorio bin, no solo conseguiremos encontrar el javac.exe desde cualquier parte, sino todos los archivos que contiene (todos .exe) también funcionarán desde cualquier parte.

IDE Integrated Development Environment

Esta clase de programas le permitirá escribir código en Java, compilarlo y ejecutarlo sin cambiar de aplicación. Muchos de ellos incluyen alguna herramienta para depurar sus programas. Le permiten además desarrollar de forma más rápida, incluyendo muchos de ellos librerías de componentes desarrollados

Sun Java Studio(Sun) El entorno de programación Java creado por la propia Sun Microsystems, puedes descargarte la versión Community que es totalmente gratuita si te das de alta en Sun como Developer. Pero también te puedes bajar una versión de prueba de 60 días de la versión Enterprise

Netbeans El IDE NetBeans es un entorno de desarrollo, una herramienta para programadores para escribir, compilar, corregir errores y para ejecutar programas. Está escrito en Java - pero puede servir de soporte a cualquier otro lenguaje de programación. Existe también un número enorme de módulos para extender el NetBeans IDE. El NetBeans IDE es un producto libre y gratuito sin restricciones de utilización.

Borland Jbuilder El entorno de programación es similar al utilizado por Delphi y Borland C++ Builder con soporte 100% puro Java. Es de pago, pero dispones de una versión de prueba que puedes descargar de esta página.

IBM Visual Age for Java Herramienta RAD de IBM, disponible para OS/2 y Windows, es uno de los entornos más visuales e intuitivos. Es de pago, pero dispones de una versión de prueba que puedes descargar de esta página.

JCreator JCreator, es un estupendo IDE, potente. ligero y de fácil uso. Tiene versiones de pago, de prueba y de tipo freeware.

Compartir

Sección de Interés

ÁREA LINUX