Está en la página 1de 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

También podría gustarte