Académique Documents
Professionnel Documents
Culture Documents
directamente, sin necesidad de compilarlos en lenguaje mquina. Aunque los programas compiladores se ejecutan mucho ms rpido que los programas interpretados, los intrpretes son populares dentro de entornos de desarrollo de programas, en los cuales los programas se recompilan frecuentemente, a medida que se agregan nuevas caractersticas y se corrigen los errores.
Historia de Java
Muchas personas creen que la siguiente rea importante en la que los microprocesadores tendrn un profundo impacto es en los dispositivos electrnicos para uso domstico. Al reconocer esto, Sun Microsystems patrocin en 1991 un proyecto interno de investigacin denominado Green. El proyecto desemboc en el desarrollo de un lenguaje basado en C++ al que su creador, James Gosling, llam Oak debido a un roble que tena a la vista desde su ventana en las oficinas de Sun. Posteriormente se descubri que ya exista un lenguaje de programacin con el mismo nombre. Cuando un grupo de gente de Sun visit una cafetera local, sugirieron el nombre Java (una variedad de caf) y as se qued. Pero el proyecto Green tuvo algunas dificultades. El mercado para los dispositivos electrnicos inteligentes de uso domstico no se desarrollaba tan rpido como Sun haba anticipado. Peor an, un contrato importante por el que Sun haba competido se le otorg a otra empresa. De manera que el proyecto corra el riesgo de cancelarse. Pero para su buena fortuna, la popularidad de World Wide Web explot en 1993 y la gente de Sun se dio cuenta inmediatamente del potencial de Java para agregar contenido dinmico y animaciones a las pginas Web. Esto trajo nueva vida al proyecto. Sun anunci formalmente a Java en una conferencia imporante que tuvo lugar en mayo de 1995. Java gener un inters inmediato en la comunidad de negocios, debido al fenomenal inters en World Wide Web. En la actualidad, Java se utiliza para desarrollar aplicaciones empresariales a gran escala, para mejorar la funcionalidad de los servidores de World Wide Web (las computadoras que proporcionan el contenido que vemos en nuestros navegadores Web), para proporcionar aplicaciones para los dispositivos domsticos (como telfonos celulares, radiolocalizadores y asistentes digitales personales) y para muchos otros propsitos.
La ventaja de crear sus propias clases y mtodos es que sabe exactamente cmo funcionan y puede examinar el cdigo en Java. La desventaja es que toma mucho tiempo y requiere de un gran esfuerzo disear y desarrollar nuevas clases y mtodos. Utilizar clases y mtodos del as APIs de Java en vez de escribir sus propias versiones pueden mejorar el rendimiento de sus programas, ya que estas clases y mtodos estn escritos cuidadosamente para funcionar de manera eficiente y correcta. Esta tcnica tambin mejora la velocidad de prototipo en el desarrollo del programa (es decir, el tiempo requerido para desarrollar un nuevo programa y hacer que su primera versin pueda ejeutarse). Utilizar las clases y mtodos de las APIs de Java en vez de escribir sus propias versiones mejora la portabilidad de sus programas, ya que estas clases y mtodos se incluyen en todas las implementaciones de Java. Existen diversas bibliotecas de clases que contiene componentes reutilizables de software, las cuales estn disponibles a travs de Inernet y la Web. Muchas de estas bibliotecas estn disponibles en forma gratuita.
de daar sus archivos o su sistema (como podran hacerlo los virus de computadora). Tome en cuenta que la verificacin del cdigo debytes tambin se lleva a cabo en aplicaciones que descargan clases a travs de una red. Finalmente, en la fase 5, el intrprete, bajo el control del sistema operativo, interpreta el programa en cdigo de bytes a la vez, realizando en esta forma las acciones especificadas por el programa. Las aplicaciones se cargan en memoria y se ejecutan, utilizando el intrprete de Java mediante el comando java. Al ejecutar una aplicacin de Java llamada HolaMundo, el comando java HolaMundo invoca al intrprete para la aplicacin HolaMundo, y hace que el cargador de clases cargue la informacin utilizada en el programa HolaMundo. El intrprete de Java tambin se conoce como la Mquina virtual de Java, o la JVM.
Es probable que los programas no funcionen la primera vez. Cada una de las fases anteriores puede fallar. Por ejemplo, un programa en ejecucin podra intentar una divisin entre cero (una operacin ilegal para la aritmtica con nmeros enteros en Java). Esto hara que el programa de Java imprimiera un mensaje de error. El programador tendra que regresar a la fase de edicin, hacer las correciones necesarias y proseguir con las fases restantes de nuevo, para determinar que las correcciones funcionen apropiadamente. Los errores, como la divisin entre cero, ocurren a medida que se ejecuta un programa, de manera que a estos errores se les llama errores en tiempo de ejecucin. Los errores fatales en tiempo de ejecucin hacen que los programas terminen inmediatamente, sin haber realizado correctamente su trabajo. Los errores no fatales en tiempo de ejecucin permiten a los programas ejecutarse hasta terminar su trabajo, lo que a menudo priduce resultados incorrectos. La mayora de los programas en Java tienen datos de entrada o datos de salida. Cuando decimos que un programa imprime un resultado, generalmente queremos decir que el programa muestra ese resultado en el monitor de la computadora. Los datos pueden enviarse a otros dispositivos, como son discos e impresoras. Escriba sus programas de Java en una manera simple y directa. A esto se le conoce como KIS (Keep It Simple, simplifquelo). No "estire" el lenguaje experimentando con usos excntricos. Aunque es ms fcil escribir programas portables en Java que en otros lenguajes de programacin, las diferencias entre compiladores, intrpretes y computadoras pueden hacer que la 4
portabilidad sea difcil de lograr. No basta con escribir programas en Java para garantizar su portabilidad. Lea la documentacin correspondiente a la versin de Java que est utilizando. Consulta esta documentacin con frecuencia, para conocer la vasta coleccin de herramientas disponibles en Java, y para asegurarse de que las est utilizando correctamente. Su computadora y su compilador son buenos maestros. Si, despus de leer cuidadosamente el manual de documentacin de Java, todava no est seguro de cmo funciona alguna de sus caractersticas, experimente y vea lo que ocurre. Analice cada error o mensaje de advertencia que obtenga al compilar sus programas (a estos errores se les llama errores en tiempo de compilacin), y corrija los programas para eliminar estos mensajes. El kit de desarrollo de software para Java 2 incluye el cdigo fuente de Java. Muchos programadores leen el cdigo fuente de las clases de las APIs de Java, para determinar cmo funcionan estas clases y para aprender tcnicas de programacin adicionales. Los intrpretes tienen una ventaja sobre los compiladores: un programa interpretado puede empezar su ejecucin inmediatamente despus de ser descargado en el equipo cliente, mientras que para compilar un programa fuente, ste primero debe pasar por un retraso potencialmente largo durante su compilacin, antes de poder ejecutarse. El compilador de Java, javac, no es un compilador tradicional en cuanto a que no convierte un programa de Java, de cdigo fuente a cdigo mquina nativo para una plataforma computacional especfica. En vez de ello, el compilador de Java traduce el cdigo fuente en cdigo de bytes; el lenguaje de la Mquina Virtual de Java (JVM). La JVM es un programa que simula la operacin de una computadora y ejecuta su propio lenguaje mquina (es decir, cdigos de bytes de Java). Para las organizaciones que quieren desarrollar sistemas de informacin de uso rudo, existen Entornos Integrados de Desarrollo (IDEs) disponibles por parte de muchos proveedores de software importantes, incluyendo Sun Microsystems. Los IDEs ofrecen muchas herramientas que dan soporte al proceso de desarrollo de software, como editores para escribir y editar programas, depuradores para localizar errores lgicos en programas y muchas otras caractersticas. Algunos de los IDEs ms populares son Netbeans (www.netbeans.org) y Eclipse (www.eclipse.org).
8 9 10 11 12 13
Hola Mundo! Ahora consideremos cada lnea del programa en orden: La lnea 1 // HolaMundo.java Empieza con //, indicando que el resto de la lnea es un comentario. Los programadores insertan comentarios para documentar los programas y mejorar la legibilidad de stos. Los comentarios tambin ayudan a otras personas a leer y comprender un programa. El compilador de Java ignora estos comentarios, de manera que la computadora no hace nada cuando el programa se ejecuta. Comenzamos cada uno de los programas con un comentario, el cual indica el nombre del archivo. Un comentario que comienza con // se llama comentario de fin de lnea (o de una sola lnea), ya que termina al final de la lnea en la que aparece. Un comentario que se especifica con // puede empezar en medio de una lnea, y continuar solamente hasta el final de ese lnea. Los comentarios tradicionales (tambin conocidos como comentarios de mltiples lneas), como el que se muestra a continuacin: /* ste es un comentario tradicional. Puede dividirse en muchas lneas */ se distribuyen en varias lneas. Este tipo de comentario comienza con el delimitador /* y termina con */. El compilador ignora todo el texto que est entre los delimitadores. La lnea 2 // Programa para imprimir texto. es un comentario de fin de lnea que describe el propsito del programa. Es conveniente que todo programa comience con un comentario que explique su propsito, el autor, la fecha y la hora de su creacin. La linea 3 es simplemente una lnea en blanco. Los programadores usan lneas en blanco y espacios para facilitar la lectura de los programas. En conjunto, las lneas en blanco, los espacios y los tabuladores se conocen como espacio en blanco. Los espacios y tabuladores se conocen especficamente como caracteres de espacio en blanco. El compilador ignora el espacio en blanco. Utilice lneas en blanco y espacios para mejorar la legibilidad del programa. La lnea 4 public class HolaMundo { comienza una declaracin de clase para la clase HolaMundo. Todo programa en Java consiste de, cuando menos, una declaracion de clase que usted, el programador, debe definir. Estas clases se conocen como clases definidas por el programador o clases definidas por el usuario. La palabra clave class introduce una declaracin de clase en Java, la cual debe ir seguida inmediatamente por el nombre de la clase (HolaMundo). Las palabras clave (algunas veces conocidas como palabras reservadas) se reservan para uso exclusivo de Java y siempre se escriben en minscula. Por convencin, todos los nombres de clases en Java comienzan con una letra mayscula, y la primera letra de cada palabra en el nombre de la clase debe ir en mayscula (por ejemplo, 6
EjemploDeNombreDeClase). El nombre de la clase se conoce como identificador, y est compuesto por una serie de caracteres que puede ser letras, guiones bajos (_) y signos de moneda ($); sin embargo, no puede comenzar con un dgito ni tener espacios. Algunos identificadores vlidos son HolaMundo, $valor, _valor, m_campoEntrada1 y boton7. El nombre 7boton no es un identificador vlido, ya que comienza con un dgito, y el nombre campo entrada tampoco lo es debido a que contiene un espacio. Java es sensible a maysculas y minsculas; es decir, las toma como identificadores diferentes, por lo que a1 y A1 son distintos, pero ambos son identificadores vlidos. Cuando se guarda la declaracin de la clase public en un archivo, el nombre de ste debe ser el nombre de la clase, seguido de la extensin ".java". Para nuestra aplicacin, el nombre del archivo es HolaMundo.java. Todas las declaraciones de clases en Java se guardan en archivos que terminan con la extensin ".java". En trminos de ortografa, es un error que una clase public tenga un nombre de archivo que no sea idntico al nombre de la clase (ms la extensin .java). Por lo tanto, es tambin un error que un archivo contenga dos o ms clases public. Si un archivo contiene la declaracin de una clase, es un error que no finalice con la extensin .java. Si se omite esa extensin, el compilador de Java no podr compilar la declaracin de la clase. Una llave izquiera (al final de la lnea 4), {, comienza el cuerpo de la declaracin de una clase. Su correspondiente llave derecha (el la lnea 13 de este programa), }, debe terminar la declaracin de una clase. Observe que las lneas de la 6 a la 11 tienen sangra. sta es una de las convenciones de espaciado que se mencionaron anteriormente. Definimos cada una de las convenciones de espaciado como una Buena prctica de programacin. Establezca una convencin para el tamao de sangra que usted prefiera, y despus aplique uniformemente esta convencin. La tecla Tab puede utilizarse para crear sangras, pero las posiciones de los tabuladores pueden variar entre los diversos editores de texto. Es un error de sintaxis no utilizar las llaves por pares. La lnea 5 es una lnea en blanco, que se insert para mejorar la legibilidad del programa. La lnea 6 // el mtodo main empieza la ejecucin de la aplicacin en Java es un comentario de fin de lnea que indica el propsito de las lneas 7 a 11 del programa. La lnea 7 public static void main(String[] args) es el punto de inicio de toda aplicacin en Java. Los parntesis despus de main indican que ste es un bloque de construccin del programa, al cual se le llama mtodo. Las declaraciones de clases en Java generalmente contiene uno o ms mtodos. En una aplicacin en Java, slo uno de esos mtodos debe llamarse main y debe definirse como se muestra en la lnea 7; de no ser as, el intrprete java no ejecutar la aplicacin. Los mtodos pueden realizar tareas y devolver informacin una vez que las hayan concluido. La palabra clave void indica que este mtodo realizara una tarea (en el caso de este programa, mostrar una lnea de texto), pero no devolver ningn tipo de informacin cuando complete su tarea. Ms adelante veremos que muchos mtodos devuelven informacin cuando finalizan sus tareas. Por ahora, simplemente copie la primera lnea de main en sus aplicaciones en Java. La llave izquierda ({) en la lnea 8 comienza el cuerpo de la declaracin del mtodo. Su correspondiente llave derecha (}) debe terminar el cuerpo de la declaracin del mtodo (lnea 11 del programa). Observe que la lnea 9 en el campo del mtodo tiene sangra entre las llaves. Aplique sangra a todo el cuerpo de la declaracin de cada mtodo, usando un "nivel" de sangra 7
entre la llave izquierda ({) y la llave derecha (}), las cuales delimitan el cuerpo del mtodo. Este formato resalta la estructura del mtodo y ayuda a facilitar la declaracin del mismo. La lnea 9 System.out.println("Hola Mundo!"); indica a la computadora que realice una accin; es decir, que imprima la cadena de caracteres, mensaje o literal de cadena. Genricamente, nos referimos a los caracteres entre comillas dobles como cadenas. El compilador no ignora los caracteres de espacio en blanco dentro de las cadenas. Es un error de sintaxis que una cadena no aparezca entre caracteres de comillas dobles, en una lnea de un programa. System.out se conoce como el objeto de salida estndar. System.out permite a las aplicaciones en Java mostrar conjuntos de caracteres en la ventana de comandos, desde la cual se ejecuta la aplicacin en Java. En Windows 95/98/ME, la ventana de comandos es el smbolo de MS-DOS. En Windows NT/2000/XP/Vista, la ventana de comandos es el Smbolo del sistema. En UNIX/Linux/Mac OS X, la ventana de comandos se llama ventana de terminal o shell. El mtodo System.out.println muestra (o imprime) una lnea de texto en la ventana de comandos. La cadena dentro de los parntesis en la lnea 9 es el argumento para el mtodo. El mtodo System.out.println realiza su tarea, mostrando su argumento en la ventana de comandos. Cuando System.out.println completa su tarea, posiciona el cursor de salida (la ubicacin en donde se mostrar el siguiente carcter en la ventana de comandos) al principio de la siguiente lnea en la ventana de comandos. Este desplazamiento del cursor es similar a cuando un usuario oprime la tecla Enterm al escribir en un editor de texto (el cursor aparece al principio de la siguiente lnea en su archivo). Toda la lnea 9, incluyendo System.out.println, el argumento "Hola Mundo!" entre parntesis y el punto y coma (;), se conoce como una instruccin. La mayora de las instrucciones terminan con un punto y coma. Cuando se ejecuta la instruccin de la lnea 9 de nuestro programa, sta muestra el mensaje Hola Mundo! en la ventana de comandos. Por lo general, un mtodo est compuesto de una o ms instrucciones que realizan la tarea de ese mtodo, como veremos en los siguientes programas. Quitar el punto y coma al final de una instruccin es un error de sintaxis. Trate de quitar un punto y coma o una lleve del programa, y vuelva a compilarlo de manera que pueda ver los mensajes de error generados por esta omisin. Cuando el compilador reporta un error de sintaxis, ste tal vez no se encuentre en el nmero de lnea indicado por el mensaje de error. Primero verifique la lnea en la que se report el error; en caso de o encontrarlo ah, verifique las lneas anteriores en el programa. A algunos programadores se les dificulta, cuando leen o escriben un programa, realacionar las llaves izquierda y derecha ({ y }) que delimitan el cuerpo de la declaracin de una clase o de un mtodo. Por esta razn, incluyen un comentario de fin de lnea despus de una llave derecha de cierre (}) que termina la declaracin de un mtodo y que termina la declaracin de una clase. Por ejemplo la lnea 11 } // fin del mtodo main especifica la llave derecha de cierre (}) del mtodo main, y la lnea 13 } // fin de la clase HolaMundo especifica la llave derecha de cierre (}) de la clase HolaMundo. Cada comentario indica el mtodo o la clase que termina con ese llave derecha.