Professional Documents
Culture Documents
Introduccion a Java
El lenguaje de programacin Java es un poderoso y completo lenguaje de programacin orientado a objetos desarrollado a principios de los aos 90 en Estados Unidos por Sun Soft Inc., una subsidiaria de la empresa fabricante de equipo de cmputo denominada Sun Microsystems, Inc. Los diseadores de Java tuvieron en mente crear "un lenguaje de programacin sencillo, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, porttil, de gran rendimiento, multitarea y dinmico ". Java es un conjunto de objetos y herramientas que se utilizan con una sintaxis muy similar a la del lenguaje C y C++ y que permiten utilizar los mismos cdigos fuente de programacin distribuyndolos a travs de las redes de cmputo, operando de forma tal, que son neutrales o independientes a las diferentes arquitecturas de computadoras gracias a la implementacin del concepto de mquina virtual, y que hay una para cada plataformas y sistemas operativos en los que se ejecuten programas de Java
que decidir un nuevo nombre, y en esa junta estaban tomando caf - en algunas partes de EUA se denomina Java a un caf de buena calidad - , entonces James Gosling y sus colegas decidieron darle ese nombre. Para hacer pblico el lenguaje, en la conferencia SunWorld, John Gage de Sun y Marc Andreesen de Netscape presentaron Java al mundo. Netscape se comprometi a incorporar Java en la siguiente versin de su navegador y al final del ao empresas como IBM, Oracle, Borland, Adobe, Macromedia, Lotus, Spyglass e Intuit haban incorporado Java a sus productos. Incluso Microsoft autoriz Java, comprometindose a incorporar Java a sus productos, sistemas operativos y herramientas de desarrollo. La versin original de Java era tan pequea que caba en un disquete. El intrprete del ncleo tena casi 100 Kb. La biblioteca matemtica sumaba otros 20 Kb. El cdigo para la integracin con bibliotecas C eran otros 50 Kb. La mayora de las bibliotecas de clase caban en 375 Kb, dejando slo las bibliotecas de grficos especficas de plataforma que variaban en tamao. En conjunto Java solamente tena alrededor de 1 Mb de ROM y 1 Mb de RAM.
1.2.1 Simple
Java es simple porque elimina la complejidad de los lenguajes de programacin como el C y el C++. Java incorpora nuevas caractersticas como un recolector automtico de elementos no utilizados y elimina aspectos confusos y poco utilizados del C++ como la sobrecarga de operadores. Tambin por supuesto, elimina el manejo difcil y complejo de los apuntadores y su aritmtica de apuntadores. Incorpora un conjunto de caractersticas ya utilizadas en la historia de los lenguajes de programacin como son:
Las clases que vienen de C++ y SmallTalk pero limitadas a herencia simple. Las interfaces que proceden de Objetive-C y proporcionan a Java herencia mltiple de interfaces. Los paquetes de clases viene de Modula La concurrencia y la multitarea que estaban ya en varios lenguajes, Java lo incorpora.
El control de excepciones del Modula-3 Vnculos dinmicos y la recogida automtica de elementos no utilizados proviene del Lisp.
1.2.3 Distribuido
Java es distribuido porque adems de que puede acceder a objetos distribuidos en distintas computadoras u equipos mediante protocolos estndar basados en TCP/IP como HTTP, con las ltimas versiones de Java, se pueden invocar mtodos en un equipo remoto tan fcil e invisiblemente como podra hacerse en su mismo equipo o espacio de ejecucin mediante protocolos comunes como CORBA (que es una arquitectura intermediaria para solicitar objetos comunes) y RMI (que son invocaciones a mtodos remotos), adems de los recin incorporados servicios Web. Para cada protocolo de comunicacin, Java se encarga de toda la conversin y transporte de manera automtica.
1.2.4 Interpretado
Java es un lenguaje interpretado, porque sus cdigos de programas fuente en lugar de ser compilados y traducidos en ejecutables nativos, son traducidos en cdigos de bytes (byte code) no asociados a una plataforma especfica. Este byte code es transferido a cualquier plataforma que tenga Java Runtime Environment (JRE), y que consiste en una Mquina Virtual de Java (JVM) y de ste modo pueden ejecutarse sin volver a compilarlos (Compile una vez y Ejectelo n veces).
Puede pensarse que Java es lento, sin embargo los cdigos neutrales de bytes contienen informacin adicional que puede utilizarse para optimizar la ejecucin en tiempo de ejecucin, segn decisiones que no pueden realizarse en tiempo de compilacin.
1.2.5 Robusto
La robustez es la fiabilidad de un programa. Java es fiable o robusto porque incorpora las siguientes caractersticas: Es un lenguaje "tipeado" o basado en tipos. El compilador y cargador de clases aseguran la correccin de todas las llamadas de mtodo, lo que evita las diferencias implcitas entre tipos y las incompatibilidades entre versiones. No tiene apuntadores o punteros. En Java hay referencias en lugar de apuntadores, y no se pueden mover una referencia para manipular directamente espacios de memoria. Esto evita que la memoria se corrompa accidentalmente, como por ejemplo pasarse el final de una pila, etc. Java tiene un colector automtico de basura (garbage collector). Los programadores pueden olvidarse de liberar memoria y con Java ya no tienen que preocuparse por decidir las partes de memoria que deben liberarse ya que el colector lo hace automticamente. En Java se fomenta el uso de interfaces en lugar de clases. Las interfaces definen un conjunto de comportamientos (mtodos). En lugar de pasar clases, se pasan interfaces, ocultando as las implementaciones. Si la implementacin cambia como sucede a menudo, y no se tiene la nueva clase que implementa la vieja interfaz, todo lo dems funcionar perfectamente.
1.2.6 Seguro
El sistema de Java tiene ciertas polticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos crticos de una computadora y poner los sistemas en riesgo. Java no permite el manejo de apuntadores, y evita que un programa malicioso corrompa los espacios de memoria. En cuanto a la ejecucin de programas Java integra funciones de seguridad: el verificador de cdigo de bit, el cargador de clases y el gestor de seguridad. Esto garantiza que el cdigo no seguro realice operaciones seguras, como leer el disco duro. Otro aspecto de la seguridad recientemente incorporado a Java tiene que ver con la autentificacin, autorizacin y encriptacin para proteger la privacidad y asegurar la integridad de los datos.
1.2.8 Porttil
Como el cdigo compilado de Java (conocido como byte code) o que es un cdigo de bytes de plataforma neutral, es interpretado, y un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el intrprete de Java (JRE). Esto ltimo hace honor a la promesa de sus desarrolladores sintetizado en las frases " Escribir una vez, Ejecutarse en cualquier sitio" (EE). De esta manera, es posible confiarse en que todas las implementaciones numricas en tamao, orden de byte y manipulacin son generales o neutrales, y estas estn definidas en la documentacin de Java en (http://java.sun.com/docs/books/jls/) Language Specification.
mientras se ejecuta y optimiza la velocidad en los bloques ms frecuentemente ejecutados, en lugar de en todo el cdigo.
1.2.10 Multitarea
Java es un lenguaje que soporta mltiples threads (hilos, procesos, tareas), esto es, Java es un lenguaje que puede ejecutar diferentes lneas de cdigo al mismo tiempo. Los programas multitarea comparten memoria y deben tener comunicacin entre los subprocesos. Java tiene bibliotecas estndar con muchos recursos para ayudar al programador en este proceso de comunicacin, asegurando la seguridad de los subprocesos.
Descargue el SDK para estas plataformas del sitio Web de Sun, en la siguiente direccin
http://www.oracle.com/technetwork/java/index.html
Elegir la versin ms actual del SDK. Peridicamente, Sun publica reparaciones de fallas que agregan un nuevo dgito al nmero, como cuando a Java 1.1 le sigue 1.1.1, 1.2.0, 1.3.0, 1.4.0, 1.5.0, 1.6.1_01, etctera. Obtener la versin ms reciente del SDK disponible para su plataforma.
javac El compilador Java por excelencia, un compilador de lnea de comandos, que te permitir crear tus programas y applets en Java.
appletviewer Un visualizador de Applets para no tener que cargarlos en un navegador. java El intrprete que te permitir ejecutar tus aplicaciones creadas en Java. javadoc El documentador de Java jdb El depurador de Java javap Un descompilador que te permite ver el contenido de las clases compiladas.
Archivos de programa Son los programas ejecutables necesarios para crear, compilar y verificar el funcionamiento de sus proyectos de Java. Archivos de biblioteca y encabezados Archivos usados nicamente por los programadores que hacen llamadas a cdigo nativo desde programas de Java. Archivos de demostracin Son programas de Java 2, con versiones que puede ejecutar y archivos fuente que puede examinar para aprender ms acerca del lenguaje. Bibliotecas de clases o API's (Application Program Interface). Que son las libreras de clases llamadas paquetes creadas por los desarrolladores del software de Java de la empresa Sun. Despus de haber instalado el SDK, notar que hay varios archivos instalados en el subdirectorio \JDK1.6.0_23\lib la mayora con extensin *.jar. Aunque son archivos *.jar, no debe descomprimirlos. El SDK puede leer los archivos .jar en su formato de archivo en este directorio. Se puede escoger la unidad destino donde se va a instalar el software de Java 2 SDK SE dndole clic al botn Browse..., en este caso se seleccion la unidad E: y tambin puedes cambiarle el nombre a la carpeta destino, en lugar de poner el nombre que
propone el instalador que es; JDK1.6.0_23 le puedes poner otro, por ejemplo yo le puse j2sdk141 y es por eso que en la figura 1 el rbol de carpetas y subcarpetas de la unidad C: muestra que el directorio para la variable de ambiente JAVA_HOME es C:\JDK1.6.0_23.
SET CLASSPATH =.; C:\Archivos de Programa\Java\JDK1.6.0_23\lib; O si ya creaste la variable JAVA_HOME para apuntar a E:\J2SDK141 se puede hacer lo siguiente: SET CASSPATH =.;%JAVA_HOME%\lib; La parte de la ruta de configuracin del CLASSPATH .; (punto y punto y coma) es necesaria para apuntar a la carpeta o directorio actual de trabajo con el fin de que podamos compilar y ejecutar nuestros programas de Java en la carpeta donde estemos ubicados en ese momento y tome las clases generadas en esa carpeta. Nota: Para establecer las variables de ambiente PATH y CLASSPATH en sistemas Windows 98 y Windows 2000 hay que editar el archivo autoexec.bat con un editor de texto como el block de notas, y modificar las variables PATH y CLASSPATH como se explic antes y hay que inicializar de nuevo el sistema para que el sistema operativo de los valores nuevos a dichas variables. Para establecer las variables de ambiente PATH Y CLASSPATH Microsoft Windows NT, 2000, y XP, hay que seguir los pasos siguientes(En windows XP puede variar un poco pero son en esencia los mismos pasos) : Inicio->Configuracin ->Panel de Control ->Sistema ->Ventana de "Propiedades del Sistema"; ficha o pestaa "Avanzado"; botn "Variables de entorno" ->Ventana de "Variables de entorno". En la ventana Variables de entorno se encuentran las variables de usuario en la parte superior, pulsando el botn "Nueva" aparece un cuadro de dialogo donde se debe introducir el Nombre de la variable y el Valor de la Variable. Vea la siguiente figura 2.2 para el caso de Windows XP profesional:
Figura 2.2
Figura 2.3
Su primera aplicacin de Java Las aplicaciones de Java son programas independientes que no requieren un navegador Web para correr. Son ms parecidos a los programas que ud. suele usar en su computadora (los ejecuta localmente con su ratn o escribiendo el nombre en la lnea de comandos) . A) Escriba el programa. Puede utilizar el block de notas de Windows o cualquier editor de texto que ud. conozca.
class Hola { public static void main (String[] arguments) { System.out.println("Hola bienvenido a tu curso bsico+de Java"); } }
B) Cree una carpeta que se llame C:\j21curso. En ella guarde el archivo del programa con el nombre de Hola.java. Es importante que el programa se llame exactamente igual al nombre de la clase para que pueda compilarse, de lo contrario habr un error. Cuando guarde el archivo utilice comillas antes y despus del nombre para evitar que el programa guarde el archivo con su extensin.TXT, tal y como se ve en la ( figura 2.4 ).
Figura 2.4 Compilacin y ejecucin del programa en Windows. Cambiar el directorio actual alJ21cursocon la ventana de una sesin de MS-DOS con el comando: cd \j21curso Si est en la carpeta correcta, puede compilar Hola.java escribiendo lo siguiente en el indicador de lnea de comandos:
Javac Hola.java La (figura 2.5) muestra los comandos de MS-DOS que se usaron para cambiarse a la carpeta\j21curso, listar los archivos de las carpetas y compilarHola.java
Figura 2.5 Si el compilador del SDK no despliega ningn mensaje de error quiere decir que se compilo con xito. Esto quiere decir que se crear un archivo Hola.class en el mismo directorio que contieneHola.java. Este archivo .class es el cdigo de bytes (byte code) que puede ser ejecutado por la mquina virtual. Una vez que tenga un archivo .class, lo puede ejecutar mediante el intrprete de cdigo de bytes. Ejecute Hola.class escribiendo lo siguiente: Java Hola La (figura 2.6) muestra la salida apropiada de la aplicacin Hola junto con los comandos MS-DOS que se utilizaron para llegar a ese punto.
Figura 2.6
Las aplicaciones de consola llevan en la clase un mtodo que es esttico llamado main(),en los sucesivos captulos de este documento se muestran varios ejemplos. Los applets son programas que se ejecutan dentro de un navegador de Internet (como Netscape o Internet Explorer). La ejecucin de estos inicia en el mtodo init(),luego en start() o paint()y termina con el mtodo destroy().En caso de faltar alguno de estos se pasa al siguiente. Los servlets son programas que se ejecutan en un servidor y entregan resultados a un programa cliente (cliente/servidor se explica ms adelante en uno de los captulos de este documento). Los mtodos que se ejecutan son init()primero y luego doGet() o doPost() o action() dependiendo del que se encuentre sobre escrito en ese momento. Los beans se utilizan en los llamados JSP(Java Server Pages) para brindarles funcionalidad con el uso de objetos. Estos no tienen un punto de inicio de ejecucin como los anteriores sino que cualquier mtodo se puede llamar en cualquier momento dentro de un JSP.
2.7Estructura de un programa
La mayora de los programas en Java son de tipo aplicaciones de consola, y bsicamente el programa ms sencillo en Java puede ser algo como lo siguiente: class HagoNada { } Pero se recomienda la siguiente estructura, veamos un ejemplo:
/** Comentarios en java * Proposito de este programa es proponerte una * estructura para un programa en Java. * @author Davicho * @version 1.0 */ //paquete al que pertenece esta clase //Nombre de la clase class Taxista { /** * Esta clase define un Taxista y asigna un taxi */ //Atributos // Coloca el nombre de la empresa aqu private static String nombreEmpresa = "Taxis del Noreste"; // Nombre del taxista private String Nombre; // Carro asignado al taxista private Carro miTaxi; // Constructor por default para elTaxista Taxista() { Nombre = null; miTaxi = null; } // Constructor para inicializar aTaxista Taxista(String elNombre, String noSerie) { Nombre =elNombre; miTaxi = newCarro(noSerie); } //Establece el nombre del Taxista public void setNombre(String elNombre) { Nombre = elNombre; } // Obtiene el nombre del Taxista public static String getNombre() { return Nombre; } // Obtiene el nombre de la empresa public static string getEmpresa() { return nombreEmpresa; } privatevoid darDestino() { } private void vueltaDerecha() { } private void vueltaIzquierda() { }
El programador es libre de poner todos los miembros de la clase (atributos, constructores, mtodos de interface pblica y de implementacin privada) donde guste siempre y cuando estn dentro de la definicin de clase (dentro de los parntesis de mbito de la clase), Java no le amarra las manos, pero conviene tener un orden, y el ejemplo anterior se propone uno.
Figura. Como se crean aplicaciones Java con SDK ( Sofware Develpment Kit )
En la siguiente figura 2.8 se indica esquemticamente las etapas que un programador tiene que realizar para crear aplicaciones Java con SDK.
Figura 2.8 como se crean applets Java con SDK ( Software Development Kit ).