Вы находитесь на странице: 1из 6

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas

INTRODUCCIN A JAVA (Tomado de Internet) HISTORIA DE JAVA A finales de los aos ochenta Sun Microsystems decide introducirse en el mercado de la electrnica de consumo y ms concretamente en los equipos domsticos, incluyendo la televisin interactiva. Java, nace como un lenguaje ideado en sus comienzos para programar electrodomsticos! OBJETIVOS DE DISEO DE LOS CREADORES DE JAVA LENGUAJE FAMILIAR: Java no sera un lenguaje totalmente nuevo, se parecera a lo que conocemos como C++, as que no le sera tan complicado recalar en los programadores escpticos. LENGUAJE ORIENTADO A OBJETOS: Para que un lenguaje pueda considerarse orientado a objetos debe soportar como mnimo las caractersticas de: encapsulacin, herencia, polimorfismo y enlace dinmico. LENGUAJE ROBUSTO: Uno de los problemas ms comunes en los lenguajes de programacin es la posibilidad de escribir programas que pueden bloquear el sistema. Algunas veces este bloqueo puede ser inmediato, pero en otras ocasiones llega a aparecer inesperadamente porque, por ejemplo, la aplicacin accede a zonas de memoria que no estaban siendo ocupadas por otros programas hasta ese momento. Un ejemplo claro de lenguaje no robusto es C. Al escribir cdigo en C o C++ el programador debe hacerse cargo de la gestin de memoria de una forma explcita, solicitando la asignacin de bloques a punteros y liberndolos cuando ya no son necesarios. En Java, los punteros, la aritmtica de punteros y las funciones de asignacin y liberacin de memoria (malloc( ) y free( ) ) no existen. En lugar de los punteros se emplean referencias a objetos, los cuales son identificadores simblicos. El gestor de memoria de Java lleva una contabilidad de las referencias a los objetos. Cuando ya no existe una referencia a un objeto, ste se convierte en candidato para la recogida de basura (garbage collection). LENGUAJE DE ALTO RENDIMIENTO (MLTIPLES THREADS): Una de las caractersticas del lenguaje es que soporta la concurrencia a travs de threads. En ocasiones puede interesarnos dividir una aplicacin en varios flujos de control independientes, cada uno de los cuales lleva a cabo sus funciones de manera concurrente. Cuando los distintos flujos de control comparten un mismo espacio lgico de direcciones, se denominan threads. LENGUAJE PORTABLE: El principal objetivo de los diseadores de Java, y dado el gran crecimiento de las redes en los ltimos aos, fue el de desarrollar un lenguaje cuyas aplicaciones una vez compiladas pudiesen ser inmediatamente ejecutables en cualquier mquina y sobre cualquier sistema operativo. Por ejemplo, un programa desarrollado en Java en una estacin de trabajo Sun que emplea el sistema operativo Solaris, debera poderse llevar a un PC que utilice sistema operativo Windows NT. LENGUAJE LO MS SIMPLE POSIBLE:

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
Los diseadores de Java trataron de mantener las facilidades bsicas del lenguaje en un mnimo y proporcionar un gran nmero de extras con las libreras de clases. LENGUAJE SEGURO: Se pretenda construir un lenguaje de programacin que fuese seguro, esto es, que no pudiera acceder a los recursos del sistema de manera incontrolada. Por este motivo se elimin la posibilidad de manipular la memoria mediante el uso de punteros y la capacidad de transformacin de nmeros en direcciones de memoria (tal y como se hace en C) evitando as todo acceso ilegal a la memoria. Esto se asegura porque el compilador Java efecta una verificacin sistemtica de conversiones. LO NUEVO EN JAVA La gran novedad que aporta Java dentro de las nuevas generaciones de navegadores es la capacidad de desplazar el control de la interactividad de los servidores hacia las mquinas de los usuarios que se utilizan para recorrer Internet. Por la misma estructura del lenguaje, los nuevos navegadores permiten la telecarga de "applets", pequeos fragmentos de programas compactos, precompilados, que pueden entonces interpretar de modo distinto los datos telecargados para producir por ejemplo animaciones, sonido y especialmente la verdadera interactividad. El lenguaje Java, visto desde un navegador de Internet, es pues un lenguaje que no es ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un cdigo elemental parecido al ensamblador, llamado tambin p-code o byte-code. Posee la particularidad de ser compacto y por tanto puede ser compilado (traducido a lenguaje mquina) muy rpidamente, en el transcurso de la propia ejecucin del programa. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una mquina a otra. La facilita hasta el punto de lograrla desaparecer. Aparece entonces la "mquina virtual". Una mquina virtual es una capa lgica que hace creer al programa Java que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad slo ve una reconstruccin lgica de un ordenador. Para ejecutar un programa Java compilado (que est en p-code), es preciso tambin que cuente con una implementacin de la mquina virtual especfica donde se desea ejecutar, la cual efecta la transformacin del p-code en un programa comprensible para la mquina.

Herramientas necesarias para desarrollar en Java Para desarrollar programas en Java es suficiente con instalar el paquete JDK de Sun, que es de libre distribucin. En el site de Sun podemos encontrar toda clase de informacin

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
relacionada con Java: Ejemplos de programas escritos en Java, tutoriales, documentacin, bugs conocidos y su solucin, etc... La direccin base es: www.sun.com La ltima versin disponible hasta la fecha es la JDK 1.2 Pasos para crear un programa en Java Aplicaciones: Escribir el programa fuente en cualquier editor y guardarlo con extensin .java Compilar el fichero fuente mediante: javac miPrograma.java .Esto genera el fichero .class Ejecutarlo (interpretar los byte-code) : java miPrograma

Applets Escribir el programa fuente en cualquier editor y guardarlo con extensin .java Compilar el fichero fuente mediante: javac miProgramaApplet.java Escribir la pagina Web que contendr al applet y guardar el cdigo con extensin .html El cdigo mnimo ser: Hay 2 posibilidades para ejecutar el applet: 1. Lanzar un navegador y cargar la pagina html, o bien 2. Usar el programa provisto por Sun para ver applets: appletviewer miProgramaApplet.html Un ejemplo de herramientas bsicas para comenzar a programar en lenguaje JAVA podra ser: 1.- Editor de cdigo multilenguaje y con utilidades de edicin y deteccin automtica de errores. Un muy buen editor con estas propiedades y muchas ms es ED for Windows v3.80 (www.getsoft.com) pero existen muchos otros y casi todos de libre distribucin. 2.- JDK1.1.x, con el que podemos compilar y probar las aplicaciones y applets realizados. 3.- Documentacin HTML de las clases JAVA. Adems de lo arriba indicado, es aconsejable trabajar con paquetes de componentes que no pertenecen a los bsicos de Java, como puede ser swing o symbeans. Estos componentes o beans proporcionan utilidades y facilidades aadidas al paquete bsico de jdk. Otra posibilidad para desarrollar en JAVA es utilizar una herramienta Visual como Visual Cafe o V++. Estas herramientas suponen un entorno integrado de programacin con mdulos editor, de diseo visual, compilador, depurador, etc. Adems proporcionan componentes propios especialmente tiles en diseo de interfaces grficas.

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
Gramtica de Java

1. Comentarios: En Java hay tres tipos de comentarios: Para una sola lnea, de un o varias lneas, de documentacin de una o varias lneas. Los dos primeros tipos de comentarios son los que todo programador conoce y se utilizan del mismo modo. Los comentarios de documentacin, colocados inmediatamente antes de una declaracin (de variable o funcin), indican que ese comentario ha de ser colocado en la documentacin que se genera automticamente cuando se utiliza la herramienta de Java, javadoc. Dichos comentarios sirven como descripcin del elemento declarado permitiendo generar una documentacin de nuestras clases escrita al mismo tiempo que se genera el cdigo. 2. Identificadores: Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar. En Java, un identificador comienza con una letra, un subrayado (_) o un smbolo de dlar ($). Los siguientes caracteres pueden ser letras o dgitos. Se distinguen las maysculas de las minsculas y no hay longitud mxima.

3. Palabras clave Las siguientes son las palabras clave que estn definidas en Java y que no se pueden utilizar como identificadores: abstract continue for new switch boolean default goto null synchronizedbreak do if package thisbyte double implements private threadsafebyvalue else import protected throwcase extends instanceof public transient catch false int return true char final interface short try class finally long static void const float native super while 4. Palabras reservadas: Adems, el lenguaje se reserva unas cuantas palabras ms, pero que hasta ahora no tienen un cometido especfico. Son: cast future generic inneroperator outer rest var

Aplicaciones vs. Applets Las caractersticas propias del lenguaje JAVA hacen que adems de poder desarrollar aplicaciones que se ejecutan en el intrprete local, se puedan desarrollar mdulos descargables a travs de una pgina web y ejecutables en la JVM (Java Virtual Machine) del navegador. Estos mdulos reciben el nombre de Applets.

Tipos de Clases Hasta ahora slo se ha utilizado la palabra clave public para calificar el nombre de las clases que hemos visto, pero hay tres modificadores ms. Los tipos de clases que podemos definir son: abstract Una clase abstract tiene al menos un mtodo abstracto. Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia.

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
Final Una clase final se declara como la clase que termina una cadena de herencia. No se puede heredar de una clase final. Por ejemplo, la clase Math es una clase final. public Las clases public son accesibles desde otras clases, bien sea directamente o por herencia. Son accesibles dentro del mismo paquete en el que se han declarado. Para acceder desde otros paquetes, primero tienen que ser importadas. synchronizable Este modificador especifica que todos los mtodos definidos en la clase son sincronizados, es decir, que no se puede acceder al mismo tiempo a ellos desde distintos threads; el sistema se encarga de colocar los flags necesarios para evitarlo. Este mecanismo hace que desde threads diferentes se puedan modificar las mismas variables sin que haya problemas de que se sobrescriban. Variables y mtodos de instancia Una clase en Java puede contener variables y mtodos. Las variables pueden ser tipos primitivos como int, char, etc. Los mtodos son funciones. Mtodos y Constructores Los mtodos son funciones que pueden ser llamadas dentro de la clase o por otras clases. El constructor es un tipo especfico de mtodo que siempre tiene el mismo nombre que la clase. Cuando se declara una clase en Java, se pueden declarar uno o ms constructores opcionales que realizan la inicializacin cuando se instancia (se crea una ocurrencia) un objeto de dicha clase. La palabra clave new se usa para crear una instancia de la clase. Antes de ser instanciada con new no consume memoria, simplemente es una declaracin de tipo. La Herencia es el mecanismo por el que se crean nuevos objetos definidos en trminos de objetos ya existentes. Por ejemplo, si se tiene la clase Ave, se puede crear la subclase Pato, que es una especializacin de Ave. La palabra clave extends se usa para generar una subclase (especializacin) de un objeto. Una Pato es una subclase de Ave. Cualquier cosa que contenga la definicin de Ave ser copiada a la clase Pato, adems, en Pato se pueden definir sus propios mtodos y variables de instancia. Se dice que Pato deriva o hereda de Ave. En Java no se puede hacer herencia mltiple. Por ejemplo, de la clase aparato con motor y de la clase animal no se puede derivar nada, sera como obtener el objeto toro mecnico a partir de una mquina motorizada (aparato con motor) y un toro (aminal). En realidad, lo que se pretende es copiar los mtodos, es decir, pasar la funcionalidad del toro de verdad al toro mecnico, con lo cual no sera necesaria la herencia mltiple sino simplemente la comparticin de funcionalidad que se encuentra implementada en Java a travs de interfaces. Control de acceso Cuando se crea una nueva clase en Java, se puede especificar el nivel de acceso que se quiere para las variables de instancia y los mtodos definidos en la clase. Slo las subclases de la clase y nadie ms puede acceder a las variables y mtodos de instancia protegidos. Las variables y mtodos de instancia privados slo pueden ser accedidos desde dentro de la clase. No son accesibles desde las subclases. Los mtodos protegidos (protected) pueden ser vistos por las clases derivadas, como en C++, y tambin, en Java, por los paquetes (packages). Todas las clases de un paquete pueden ver los mtodos protegidos de ese paquete. Para evitarlo, se deben declarar como private protected, lo que hace que ya funcione como en C++ en donde slo se puede acceder a las variables y mtodos protegidos de las clases derivadas.

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
7. Interfaces Los mtodos abstractos son tiles cuando se quiere que cada implementacin de la clase parezca y funcione igual, pero necesita que se cree una nueva clase para utilizar los mtodos abstractos. Las interfaces proporcionan un mecanismo para abstraer los mtodos a un nivel superior. Un interface contiene una coleccin de mtodos que se implementan en otro lugar. Los mtodos de una clase son public, static y final. La principal diferencia entre interface y abstract es que un interface proporciona un mecanismo de encapsulacin de los protocolos de los mtodos sin forzar al usuario a utilizar la herencia. Al utilizar implements para el interface es como si se hiciese una accin de copiar-y-pegar del cdigo del interface, con lo cual no se hereda nada, solamente se pueden usar los mtodos. La ventaja principal del uso de interfaces es que una clase interface puede ser implementada por cualquier nmero de clases, permitiendo a cada clase compartir el interfaz de programacin sin tener que ser consciente de la implementacin que hagan las otras clases que implementen el interface. Creacin de applets sencillos

Se incrustan en las paginas web Se cargan dinmicamente de la red Son programas, luego problema de seguridad: restricciones

Un applet no puede cargar libreras o definir mtodos nativos (programas en C por ejemplo) Como norma general no puede leer ni escribir ficheros en el ordenador en que se ejecuta. Si es necesario, se pueden escribir en el HD del ordenador host. No puede conectarse por red excepto al host del cual se cargo el applet No puede ejecutar ningn programa en el ordenador local No pueden lanzar programas en el equipo local Se supone que hay seguridad total, pero algn listillo podra desbaratarla... Sun desafi a los hackers! Un applet puede invocar mtodos de otros applets que residan en la misma pagina Los applets cargados desde el sistema local (desde un directorio definido en CLASSPATH) no tienen, por defecto, ninguna de las restricciones de los applets cargados desde la red Cada N crea un objeto de la clase SecurityManager Se puede definir que restricciones se le aplican al applet. Si se violan, se produce una excepcin, que el programador puede tratar ("vaya, aqu no me dejan leer de disco") Algunos applets paran su ejecucin al salir de la pagina, pero otros continan

Вам также может понравиться