ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programacion Orientada A Objetos


Enviado por   •  30 de Julio de 2014  •  3.589 Palabras (15 Páginas)  •  108 Visitas

Página 1 de 15

Fases en el desarrollo de un programa

En este capítulo aprenderá lo que es un programa, cómo escribirlo y qué hacer para que el ordenador lo ejecute y muestre los resultados perseguidos. También adquirirá conocimientos generales acerca de los lenguajes de programación utilizados para escribir programas. Después, nos centraremos en un lenguaje de programación específico y objetivo de este libro, Java, presentando sus antecedentes y marcando la pauta a seguir para realzar un programa sencillo.

Qué es un programa

Probablemente alguna vez haya utilizado un ordenador para escribir un documento o para divertirse con un juego. Recuerde que en el caso de escribir un documento, primero tuvo que poner en marcha un procesador de textos, y que si quiso divertirse con un juego, lo primero que tuvo que hacer fue poner en marcha el juego. Tanto en el procesador de textos como el juego son programas de ordenador.

Poner un programa en marcha es sinónimo de ejecutarlo. Cuando ejecutamos un programa, nosotros sólo vemos el resultado que produce (el procesador de textos muestra en la pantalla el texto que escribimos; el juego visualiza sobre la pantalla las imágenes que van sucediendo) pero no vemos es guion seguido por el ordenador para conseguir estos resultados. Ese guion es el programa.

Ahora, si nosotros escribimos un programa, entonces sí que sabemos cómo trabaja y por qué trabaja de esa forma. Esto es una forma muy diferente y curiosa de ver un programa de ordenador. Lo cual no tiene nada que ver con la experiencia adquirida en la ejecución de distintos programas.

Ahora piense en un juego cualquiera. La pregunta es, ¿qué hacemos si queremos enseñar a otra persona a jugar? Lógicamente le explicamos lo que se debe hacer; esto es, los pasos que tiene que seguir. Dicho de otra forma, le damos instrucciones de cómo debe actuar. Esto es lo que hace un programa de ordenador. Un programa no es más que una serie de instrucciones dada al ordenador en un lenguaje entendido por él, para decirle exactamente lo que queremos que haga. Si el ordenador no entiende alguna instrucción, lo comunicará generalmente mediante mensajes visualizados en la pantalla.

Lenguajes de programación

Un programa tiene que escribirse en un leguaje entendible por el ordenador. Desde el punto de vista físico, un ordenador es una máquina electrónica. Los elementos físicos (memoria, unidad central de proceso, etc.) de que dispone el ordenador para representar los datos son de tipo viario; esto es, cada elemento puede diferenciar dos estados (dos niveles de voltaje). Cada estado se denomina genéricamente bit y se simboliza por 0 o 1. Por tanto, para representar y manipular información numérica, alfabética y alfanumérica se emplean cadenas de bits. Según esto, se denomina byte a la cantidad de información empleada por un ordenador para representar un carácter; generalmente un byte es una cadena de ocho bits.

Así, por ejemplo, cuando un programa le dice al ordenador que visualice un mensaje sobre el monitor, o que imprima sobre una impresora, las instrucciones correspondientes para llevar a cabo esta acción, para que puedan ser entendibles por el ordenador, tienen que estar almacenadas en la memoria como cadenas de bits. Esto hace pensar que escribir un programa utilizando ceros y unos (lenguaje máquina), llevaría mucho tiempo y con muchas posibilidades de cometer errores. Por este motivo, se desarrollan lenguajes ensambladores.

Un lenguaje ensamblador utiliza códigos nemotécnicos para indicarle al hardware (componentes físicos del ordenador) las operaciones que tiene que realizar. Un código nemotécnico es una palabra o abreviatura fácil de recordar que representa una tarea que debe realizar el procesador del ordenador. Por ejemplo.

MOV AH, 4CH

El código MOV expresa una operación consistente en mover alguna información desde una posición de memoria a otra.

Para traducir un programa escrito en ensamblador a lenguaje máquina (código binario) se utiliza un programa llamado ensamblador que ejecutamos mediante el propio ordenador. Este programa tomará como datos nuestro programa escrito en lenguaje máquina, lenguaje que entiende el ordenador.

Cada modelo de ordenador, dependiendo del procesador que utilice, tiene su propio lenguaje ensamblador. Debido esto decimos que estos lenguajes están orientados a la máquina.

Hoy en día son más utilizados los lenguajes orientados al problema o lenguajes de alto nivel. Estos lenguajes utilizan una terminología fácilmente comprensible que se aproxima más al lenguaje humano. En este caso la traducción es llevada a cabo por otro programa denominado compilador.

Cada sentencia de un programa escrita en un lenguaje de alto nivel se descompone en general en varias instrucciones en ensamblador. Por ejemplo:

printf( “hola” );

La función printf del lenguaje C le dice al ordenador que visualice en el monitor la cadena de caracteres especificada. Este mismo proceso escrito en lenguaje ensamblador necesitará de varias instrucciones. Lo mismo podríamos decir del método println de Java:

System.out.println( “hola”);

A diferencia de los lenguajes ensambladores, la utilización de lenguajes de alto nivel no quiere en absoluto del conocimiento de la estructura del procesador que utiliza el ordenador, lo que facilita la escritura de un programa.

Compiladores

Para traducir un programa escrito en un lenguaje de alto nivel (programa fuente) a lenguaje máquina se utiliza un programa llamado compilador. Este programa tomará como datos nuestro programa escrito en lenguaje de alto nivel y dará como resultado el mismo programa pero escrito en lenguaje máquina, programa que ya puede ejecutar directa o indirectamente el ordenador.

Imagen aquí página 6

Por ejemplo, un programa escrito en el lenguaje C necesita del compilador C para poder ser traducido. Posteriormente el programa traducido podrá ser ejecutado directamente por el ordenador. En cambio, para traducir un programa escrito en lenguaje Java necesita un compilador Java; en este caso, el lenguaje máquina no corresponde al del ordenador sino al de una máquina ficticia, denominada máquina virtual Java, que será puesta en marcha por el ordenador para ejecutar el programa.

¿Qué es una máquina virtual? Una máquina virtual que no existe físicamente sino que es simulada en un ordenador por un programa. ¿Por qué utilizar una máquina virtual? Porque, por tratarse de un programa, es muy fácil instalarla en cualquier ordenador, basta con copiar ese programa en su disco duro, por ejemplo. Y ¿Qué ventajas reporta? Pues, en el caso de Java, que un lenguaje escrito en este lenguaje y compilado, puede ser ejecutado en cualquier ordenador del mundo que tenga instalada esa máquina virtual. Esta solución hace posible que cualquier ordenador pueda ejecutar un programa escrito en Java independientemente de la plataforma que utilice, lo que se conoce como transportabilidad de programas.

Intérpretes

A diferencia de un compilador, un intérprete no genera un programa escrito en lenguaje máquina a partir del programa fuente, sino que efectúa la traducción y ejecución simultáneamente para cada una de las sentencias del programa. Por ejemplo, un programa escrito en lenguaje Basic necesita el intérprete Basic para ser ejecutado. Durante la ejecución de cada una de las sentencias del programa, ocurre simultáneamente la traducción.

A diferencia de un compilador, un intérprete verifica cada línea del programa cuando escribe, lo que facilita la puesta a punto del programa. En cambio la ejecución resulta más lenta ya que acarrea una traducción simultánea.

¿Qué es Java?

Java es un lenguaje de programación de alto nivel con el que se pueden escribir tantos programas convencionales como para internet.

Una de las ventajas significativas de java sobre otros lenguajes de programación es que independientemente de la plataforma, tanto en código fuente como en binario. Esto quiere decir que el código producido por el compilador Java puede transportarse a cualquier plataforma (Intel, Spark, Motorola, etc.) que tenga instalada una máquina virtual Java y ejecutarse. Pensando en Internet esta característica por ejemplo, es independiente de la plataforma sólo en código fuente, lo cual significa que cada plataforma diferente debe proporcionar el compilador adecuado para obtener el código máquina que tiene que ejecutarse.

Según lo expuesto, Java incluye dos elementos: un compilador y un intérprete. El compilador produce un código de bytes que se almacena en un fichero para ser ejecutado por el intérprete Java denominado máquina virtual de Java.

Imagen página 7.

Los códigos de bytes de Java son un conjunto de instrucciones correspondientes a un lenguaje máquina que no es específico de ningún procesador si no de la máquina virtual de Java. ¿Dónde consigue esta máquina virtual? Hoy en día casi todas las compañías de sistemas operativos y navegadores han implementado máquinas virtuales según las especificaciones publicadas por Sun Microsystems, propietario de Java, para que sean compatibles con el lenguaje Java. Para las aplicaciones de internet (por ejemplo, los applets ) la máquina virtual está incluida en el navegador y para las aplicaciones Java convencionales, puede venir con el sistema operativo, con el paquete de Java, o bien puede obtenerse a través de internet.

¿Por qué no se diseñó Java para que fuera un intérprete más entre los que hay en el mercado? La respuesta es porque la interpretación, si bien es cierto que proporciona independencia de la máquina, conlleva también a un problema grave, y es la pérdida de velocidad en la ejecución del programa. Por esta razón la solución fue diseñar un compilador que produjera un lenguaje que pudiera ser interpretado a velocidades, si no iguales, sí cercanas a la de los programas nativos (programas en código máquina propio de cada ordenador), logro conseguido mediante la máquina virtual de Java.

Con todo, las aplicaciones todavía adolecen de una falta de rendimiento apreciable. Éste conjunto de los problemas que siempre se ha acachado a Java. Afortunadamente, la diferencia de rendimiento con respecto a aplicaciones equivalentes escritas en código máquina nativo ha ido disminuyendo hasta márgenes muy reducidos gracias a la utilización de compiladores JIT (Just In Time –compilación al instante). Un compilador JIT interacciona con la máquina virtual para convertir el código de bytes en código máquina nativo. Como consecuencia, se mejora la velocidad durante la ejecución.

Historia de java

El lenguaje de programación Java fue desarrollado por Sun Microsystems en 1991. Nace como parte de un proyecto de investigación para desarrollar software para comunicación entre aparatos electrónicos de consumo como vídeos, televisores, equipos de música, etc. Durante la fase de investigación surgió un problema que dificultaba enormemente el proyecto iniciado: cada aparato tenía un microprocesador diferente y muy poco espacio de memoria; esto provocó un cambio en el rumbo de la investigación independiente del dispositivo que fue bautizado inicialmente como Oak.

La explosión de internet en 1994, gracias al navegador gráfico Mosaic para la Word Wide Web (WWW), no pasó desapercibida para el grupo investigador de Sun. Se dieron cuenta de que los logros alcanzados en su proyecto de investigación eran perfectamente aplicables a internet. Comparativamente, internet era como un gran conjunto de aparatos electrónicos de consumo, cada uno con un procesador diferente. Y es cierto; básicamente, internet es una gran red mundial que conecta múltiples ordenadores con diferentes sistemas operativos y diferentes arquitecturas de microprocesadores, pero todos tienen en común un navegador que utilizan para comunicarse entre sí. Esta idea hizo que el grupo investigador abandonara el proyecto de desarrollar un lenguaje que permitiera la comunicación entre aparatos electrónicos de consumo y dirigiera sus investigaciones hacia el desarrollo de un lenguaje que permitiera crear aplicaciones que se ejecutaran en cualquier ordenador de internet con el único soporte de navegador.

A partir de aquí todo es conocido. Se empezó a hablar de Java y de sus aplicaciones conocidas como applets. Un applet es un programa escrito en Java que se ejecuta en el contexto de una página Web en cualquier ordenador, independientemente de su sistema operativo y de la arquitectura de su procesador. Para ejecutar un applet solo se necesita un navegador que soporte la máquina virtual de Java como, por ejemplo, Microsoft Internet Explorer o Mozilla Firefox. Utilizando un navegador de éstos, se puede descargar la página Web que contiene applet y ejecutarlo. Precisamente en este campo, a Java como lenguaje de programación le han salido otros competidores como Microsoft .NET que ofrece una máquina virtual, CLR, que admite varios lenguajes como C#, Visual Basic, C/C++, etc. Java también puede utilizarse como un lenguaje de propósito general, pero desde este punto de vista, hoy por hoy, Java tiene muchos competidores que le sobrepasan con claridad; por ejemplo C++, Ada o Visual Basic.

¿Por qué aprender Java?

Una de las ventajas más significativas de Java es su independencia de la plataforma. En el caso de que tenga que desarrollar aplicaciones que tenga que ejecutarse en sistemas diferentes, esta característica es fundamental.

Otra característica importante de Java es que es un lenguaje de programación orientada a objetos (POO). Los conceptos en los que se apoya esta técnica de programación y sus ventajas serán expuestos en el capítulo siguiente.

Además de ser transportable y orientada a objetos, Java es un leguaje fácil de aprender. Tiene un tamaño pequeño favorece el desarrollo y reduce las posibilidades de cometer errores; a la ves es potente y flexible.

Java está fundamentado en C++. Quiere esto decir que muchas de las sintaxis y diseño orientado a objetos se tomó de este lenguaje. Por lo tanto a los sectores que estén familiarizados con C++ y la POO les será muy fácil aprender a desarrollar aplicaciones con Java. Quiero advertir a este tipo de potenciales usuarios de Java que en este lenguaje no existen puntero ni aritmética de punteros, las cadenas de caracteres son objetos y la administración de memoria es automática, lo que elimina el problema que presenta C++ con las lagunas de memorias al olvidar liberar bloques de la misma que fueron asignados dinámicamente.

Realización de un programa en java

En este apartado se van a exponer los pasos a seguir en la realización de un programa, por medio de un ejemplo. La siguiente figura muestra de forma esquemática lo que el usuario de Java necesita y debe hacer para desarrollar un programa.

Imagen página 9.

Evidentemente, para poder escribir programas se necesita un entorno de desarrollo Java. Sun Microsystems (adquirida por Oracle en 2009), propietario de Java, proporciona uno de forma gratuita, Java Development kit (JDK), que se puede obtener en la dirección de internet:

http://www.oracle.com

En internet se encuentran todas las versiones para Windows, Macintosh y Linux (Solaris y otros). Eche también una ojeada a los apéndices.

Para instalar la versión que descargue una plataforma Windows, hay que ejecutar el fichero jdk-vunn-windows-i586.exe. De manera predeterminada el paquete será instalado en jdk1.v.0_mn, pero se puede instalar en cualquier otra carpeta. A continuación puede instalar en una carpeta docs la documentación que se proporciona en el fichero jdk-vunn-docs.zip. Puede ver más detalles sobre la instalación en los apéndices. Una vez realizada la instalación, se puede observar un contenido análogo al siguiente:

Imagen página 10.

• La carpeta bin contiene las herramientas de desarrollo. Esto es, los programas para compilar (Javac), ejecutar (Java), depurar (jdb) y documentar (Javadoc) los programas escritos en lenguajes de programación java y otras herramientas como appletviewer para ejecutar y depurar applets sin tener que utilizar un navegador, jar para manipular ficheros .jar (un fichero .jar es una colección de clases Java y otros ficheros empaquetados en uno solo), javah que es un fichero de cabecera para escribir métodos nativos, javap para descompilar ficheros compilados y extcheck para detectar conflictos jar.

• La carpeta jre es el entorno de ejecución de Java utilizado por el JDK. Es similar al intérprete de Java (java), pero destinado a usuarios finales que no requieran todas las opciones de desarrollo proporcionadas con la utilidad java. Incluye la máquina virtual la biblioteca de clases, y otros ficheros que soportan la ejecución de programas escritos en Java. Este producto se puede obtener también en un fichero separado.

• La carpeta lib contiene bibliotecas de clases adicionales y ficheros de soporte requeridos por las herramientas de desarrollo.

• Las carpetas demo y simple contienen ejemplos.

• La carpeta include contiene los ficheros de cabecera que dan soporte para añadir a un programa Java código nativo (código escrito en un lenguaje distinto de Java, por ejemplo Ada o C++).

• También incluye en un fichero src.zip el código fuente de todas las clases que forman el núcleo de Java 2.

Sólo falta un editor de código fuente Java. Es suficiente con un editor de texto sin formato; por ejemplo el bloc de notas de Windows. No obstante todo el trabajo de edición, compilación, ejecución y depuración, se hará mucho más fácil si se utiliza un entorno desarrollado con interfaz gráfica de usuario que integre las herramientas mencionadas, en lugar de tener que utilizar la interfaz de línea de órdenes del JDK, como veremos a continuación.

Entornos de desarrollo integrado para Java hay muchos: NetBeans de Sun, o Eclipse de la comunidad de código abierto Eclipse son los más populares. En el CD que se adjunta con este libro puede encontrar las direcciones URL para descargar NetBeans de Internet, en el apéndice A puede ver notas sobre su instalación y en el apéndice B, la forma de utilizarlo.

Cómo crear un programa

Un programa puede ser una aplicación o un applet. Con este libro aprenderá principalmente a escribir aplicaciones Java. Después aplicará lo aprendido para escribir algunos applets y otros tipos de aplicaciones. Empecemos con la creación de una aplicación sencilla: el clásico ejemplo de mostrar un mensaje de saludo.

Esta sencilla aplicación la realizaremos desde los dos puntos de vista comentados anteriormente: utilizando la interfaz de línea de órdenes del JDK y utilizando un entorno de desarrollo integrado.

Interfaz de línea de órdenes

Empecemos por editar el fichero fuente Java correspondiente a la aplicación. Primeramente visualizaremos el editor de textos que vayamos a utilizar; por ejemplo, el bloc de notas. El nombre del fichero elegido para guardar el programa en el disco, debe tener como extensión java; por ejemplo HolaMundo.java.

Una vez visualizado el editor, escribiremos el texto correspondiente al programa fuente. Escríbalo tal como se muestra a continuación. Observe que cada sentencia del lenguaje Java finaliza con un punto y coma y que cada línea del programa se finaliza pulsando la tecla entrar (Enter o ⏎).

¿Qué hace este programa?

Comentamos brevemente cada línea de este programa. No se apurare si algunos de los términos no quedan muy claros ya que todos ellos se verán con detalles de capítulos posteriores.

La primera línea declara la clase de objetos holaMundo, por que el esqueleto de cualquier aplicación Java se basa en la definición de una clase. A continuación se escribe el cuerpo de la clase encerrado entre los caracteres { y }. Ambos caracteres definen un bloque de código. Todas las acciones que van a llevar a cabo un programa java se colocan entre un bloque de código correspondiente a su clase. Las clases son la base de los programas Java. Aprenderemos mucho sobre ellas en los próximos capítulos.

Las siguientes líneas encerradas entre /* y */ son simplemente un comentario. Los comentarios no son tenidos en cuenta por el compilador, pero ayudan a entender un programa cuando se lee.

A continuación se escribe el método principal main. Observe que un método se distingue por el codificador () que aparece después de su nombre y que el bloque de código correspondiente al mismo define las acciones que tiene que ejecutar dicho método. Cuando se ejecuta una aplicación, Java espera que haya un método main. Este método define el punto de entrada y de salida de la aplicación.

En el ejemplo se observa que el método main llama para su ejecución al método println del objeto out miembro de la clase System de paquete java.lang de la biblioteca de Java, que escribe como resultado la expresión que aparece especificada entre comillas. Una secuencia de caracteres entre comillas se denomina cadena de caracteres.

Observe también que la sentencia que invoca a println finaliza con punto y coma, no sucediendo lo mismo con la cabecera de la clase HolaMundo, ni tampoco con la cabecera del método main por que la sintaxis para ambos indica que a continuación debe escribirse el bloque del código – { } – que definen. Resumiendo: un programa Java se basa en la definición de una clase, una clase contiene métodos, además de otras definiciones, y un método a su vez, contiene sentencias y otras definiciones, como veremos más adelante.

Guardar el programa escrito en el disco

El programa editado está ahora en la memoria. Para que este trabajo pueda tener continuidad, el programa escrito se debe grabar en el disco utilizando la orden correspondiente del editor. Muy importante: el nombre del programa fuente debe ser el mismo que el de la clase que contiene, respetando mayúsculas y minúsculas. En nuestro caso, el nombre de la clase es HolaMundo, por tanto el fichero debe guardarse con el nombre de HolaMundo.java.

Compilar y ejecutar el programa

El siguiente paso es compilar el programa; esto es, traducir el programa fuente a código de bytes para posteriormente poder ejecutarlo. La orden para compilar el programa HolaMundo.java es la siguiente:

Javac HolaMundo.java

Previamente, para que el sistema operativo encuentre la utilidad Javac, utilizando la línea de órdenes hay que añadir a la variable de entorno path la ruta de la carpeta donde se encuentra esta utilidad y otras que utilizaremos a continuación.

Por ejemplo:

Set path=%path%;c:\java\jdk1.6.00\bin

La expresión %path% representa el valor actual de la variable entorno path. Una ruta va separada de la anterior por un punto y coma.

En la figura siguiente se puede observar el proceso seguido para compilar HolaMundo.java desde la línea de órdenes.

Obsérvese que para compilar un programa hay que especificar la extensión .java. El resultado de la compilación será un fichero HolaMundo.class que contiene el código de bytes que ejecutará la máquina virtual de Java.

Todo lo publicado en este blog es parte del libro Java2 curso de programación cuarta edición del Autor Francisco Javier Ceballos de la editorial Alfaomega Ra-Ma (página 3-4). Así que si vas a hacer uso de la información de este blog por favor cita al autor original y por que no un poco de créditos para el blog no vendrían nada mal.

...

Descargar como  txt (23 Kb)  
Leer 14 páginas más »
txt