Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Historia de Java
Java surge de un equipo de trabajo de Sun Microsystems en 1991. La idea original era crear un lenguaje universal para que con un mismo aparato de control remoto se pudieran manejar diferentes equipos de entretenimiento. El lenguaje original, creado por James Gosling, se llamaba Oak, por un rbol que Gosling vea desde su oficina.
2
Con el tiempo, el nombre del lenguaje se cambia a Java (1994) en honor al caf, una de las bebidas favoritas de los programadores. El grupo de trabajo de Sun se dio cuenta de lo efectivo que podra ser este lenguaje en Internet y lo utilizan para desarrollar un Web browser, que llaman HotJava.
3
Lo novedoso de HotJava es que se podan correr applets escritos en Java que permitan animaciones e interaccin con el usuario. El browser fue demostrado en una conferencia mundial de Sun que se ofreci en 1995. El 23 enero de 1996 surge la primera versin pblica, Java 1.0.
4
Java ha seguido desarrollndose a travs de los aos. Las siguientes son las versiones de Java:
en en en en en en en
1995 1997 1998, tambin conocido como Java 2 2000 2002 2004, tambin conocido como Java 5 2006, tambin conocido como Java 6
Qu es Java?
En nuestro curso utilizaremos un lenguaje de programacin moderno conocido como Java. Java no es slo un lenguaje de programacin, es adems un sistema de tiempo de ejecucin, un juego de herramientas de desarrollo y una interfaz de programacin de aplicaciones (api) Java puede usarse para crear dos tipos de programas:
Aplicaciones programas tradicionales que se ejecutan en la computadora Applets pequeos programas que se ejecutan dentro de una pgina Web. Para verlos hace falta un browser como Internet Explorer o Firefox 6
Qu es java? (cont.)
Al compilar un programa en Java se crea un cdigo objeto denominado Bytecode, que es un fichero independiente de la plataforma (S.O.)que puede ser ejecutado por la mquina virtual java. La mquina virtual java puede considerarse como un microprocesador que se apoya por encima de la arquitectura tanto de hardware como del S.O.
7
Caractersticas de Java
Simple: su principal simplicidad se basa en no incluir ficheros de cabeceras, la ausencia de punteros, no tener que gestionar la memoria y la gran variedad de libreras. Distribuido: es una de las principales caractarsticas que marcaron la orientacin en el diseo de java. Robusto: los programas robustos son aquellos que no detienen su ejecucin bruscamente al presentarse errores. En este sentido Java es robusto ya que no gestiona memoria y tiene un garbage collector que nos evita el trabajo de ir liberando memoria al presentarse errores en la ejecucin. Seguro: como java se utiliza en entornos de red y distribuidos se han cuidado los aspectos de seguridad.
8
Arquitectura neutra: el compilador de java genera un cdigo (bytecode) independiente de cualquier arquitectura. Portable: este aspecto corresponde a que los programas en java los tipos de datos ocupan estrictamente los mismo en cualquier plataforma. No diferencias si son de 16 o 32 bits como en C/C++. Todo se codifica en Big endian. Interpretado: Java no genera un ejecutable diferente cada vez que compilamos en plataformas diferentes. Se genera el mismo cdigo intermedio (bytecode). Lo que permite ser interpretado por cualquier equipo que tenga 9 instalado la MVJ.
Alto rendimiento: ya que los lenguajes interpretados son entre 20 y 100 veces ms lentos, el rendimiento de java es ms aceptable. Multiflujo o multihilo: Java ofrece unos resultados muy buenos debido a que ofrece libreras especificas que nos simplifican mucho el trabajo. Dinmico: Java esta adaptado para entornos en evolucin. En este sentido las libreras pueden aadir nuevos mtodos y atributos a sus clases sin afectar a los clientes.
10
El entorno de Programacin
Los programadores necesitamos adems un conjunto de programas que nos permita crear aplicaciones y applets en Java. ste se conoce como el Kit para Desarrollo de Java (JDK, Java Development Kit). Actualmente J2SDK el cual surge de la versin 1.2. La ltima versin 1.6 o 6 del J2SDK. Existen diferentes ediciones del JDK que se pueden obtener, totalmente gratis, de Sun Microsystems: Java SE, Java EE y Java ME.
11
Ediciones de Java
Provee todo lo necesario para la creacin de aplicaciones y applets. Permite crear aplicaciones para empresas que proveen servicios por el Web. Permite crear aplicaciones para productos como telfonos celulares y enseres elctricos.
12
Javac: es compilador java que se utiliza para generar el Bytecode. Ejmplo: javac Holamundo.java Java: es programa que se utiliza para ejecutar el programa compilado. Ejemplo: java Holamundo Appletviewer: los applets son miniaplicaciones Java con interfaz grfica que se insertan en paginas web. El appletviewer nos permite probar dichos applets antes de ponerlos en nuestra web. Ejemplo: appletviewer c:\java\demo\applets\TicTacToe\example.html Debugger jdb: es el programa que nos permite depurar nuestro fuente y localizar de forma ms rpida y precisa los errores. Ejemplo: jdb miClase
compilado
previamente
con
la
opcin
(javac
13
El entorno de ejecucin
Para ejecutar un programa en Java, lo mnimo que se necesita es que la computadora contenga el Ambiente de Ejecucin de Java (JRE, Java Runtime Environment). El JRE se instala de forma automtica la primera vez que se accede a una pgina Web que contiene un applet.
14
Un programa en Java
15
Para escribir el programa se usa un editor de texto y se guarda en un archivo. El programa se conoce como cdigo fuente (source code) y el archivo es el archivo fuente (source file). La extensin .java se usa para los archivos fuente en Java.
16
La siguiente ventana muestra el cdigo fuente del programa escrito usando Notepad:
17
La siguiente ventana muestra el cdigo fuente del programa escrito usando el editor de Eclipse:
18
Para poder ejecutar (correr) un programa es necesario traducir el cdigo fuente a lenguaje de mquina. Un compilador es un programa que traduce el cdigo fuente a un cdigo ejecutable en lenguaje de mquina. La extensin .exe se utiliza normalmente para indicar que un archivo es ejecutable, pero no en Java.
19
A diferencia de la mayora de los compiladores, el compilador de Java traduce las instrucciones a un cdigo intermedio que se conoce como byte code. La extensin .class es usada para identificar el archivo que contiene la versin en byte code del archivo fuente. Este cdigo intermedio es luego interpretado y ejecutado por otro programa que se conoce como Java Virtual Machine (JVM).
20
Step 2
Java Complier
Step 3
21
hacerse mediante comandos desde el command prompt del sistema operativo. Puede hacerse desde un ambiente integrado de desarrollo (IDE, Integrated Development Enviroment).
22
En un IDE se integran un editor de texto, compilador, depurador y otras herramientas a las cuales se accede por un conjunto de mens. Los IDE que ms se utilizan para Java son Eclipse y NetBeans, los cuales estudiaremos en ste y el prximo curso.
23
Para compilar y ejecutar un programa desde el command prompt es necesario hacer tres cosas:
1.
2.
Compilar el programa:
javac HelloWorldApp.java
3.
24
La siguiente ventana muestra cmo se compila y ejecuta el programa desde el command prompt:
25
Para compilar y ejecutar un programa desde Eclipse (un IDE), se presiona el botn Run:
26
27
Los lenguajes de programacin, incluyendo Java, incluyen una serie de elementos comunes:
Palabras
28
}
29
No pueden ser utilizadas para ninguna otra cosa que no sea para lo que fueron definidas. En Java las palabras reservadas se escriben usando slo letras minsculas.
30
Los identificadores son palabras que el programador utiliza para nombrar cosas tales como programas, clases, variables y rutinas (mtodos), entre otros.
En
el programa aparecen:
Nominapp, String y System para el programa y otras clases args, horas, pagoxhora, sueldobruto y out para las variables main y println para los mtodos
31
En Java los identificadores que corresponden a las clases comienzan con letra mayscula. Los identificadores que corresponden a las variables y a los mtodos se escriben comenzando con letra minscula y usando una letra mayscula al comienzo de cada nueva palabra.
32
Java es un lenguaje sensitivo a maysculas y minsculas (case sensitive). Esto quiere decir que todos los identificadores tienen que escribirse tal como fueron definidos.
Por
Los signos de puntuacin sirven propsitos especficos, tales como marcar el final de una instruccin o indicar el comienzo y el fin de un conjunto de instrucciones.
En Java las instrucciones terminan con punto y coma (;). En Java las cadenas de caracteres (Strings) se colocan dentro de comillas dobles (). En el programa aparecen otros signos de puntuacin tales como las llaves ({ y }), los parntesis (( y )), los corchetes ([ y ]) y el punto (.).
34
Los operadores son smbolos o que llevan a alguna operacin con datos, tambin conocidos como operandos. Algunos ejemplos de operadores aritmticos son:
para - para * para / para
+
sumar dos nmeros restar dos nmeros multiplicar dos nmeros dividir dos nmeros
35
Algunos operadores pueden utilizarse para varias cosas. Por ejemplo, el operador + puede ser utilizado para:
Sumar
dos nmeros Indicar que un nmero es positivo Concatenar (unir) dos cadenas de caracteres
36
Un operador importante es el =, que requiere una variable a la izquierda y una expresin a la derecha: sueldobruto = horas * pagoxhora; Este operador, llamado operador de asignacin, evala la expresin de la derecha y asigna el resultado a la variable de la izquierda. 37
Las reglas de sintaxis indican cmo escribir correctamente los programas. Estas reglas indican cmo se pueden utilizar las palabras reservadas y los operadores y cmo los signos de puntuacin deben aparecer. Un programa con errores de sintaxis no puede compilarse ni ejecutarse.
38
}
39
Todo programa en Java debe tener por lo menos una clase. Una clase (class) es un contenedor de rutinas (llamadas mtodos en Java). En un archivo fuente se puede tener ms de una clase pero slo una puede tener el atributo public.
40
Cuando un archivo fuente en Java contiene una clase pblica, el nombre de la clase pblica tiene que ser el mismo del archivo. En el ejemplo, la clase pblica que representa el programa se llama NominaApp. Por lo tanto, el archivo fuente se tiene que llamar NominaApp.java
41
La definicin de una clase comienza con un encabezado que contiene la palabra class. Todas las definiciones e instrucciones que pertenecen a una clase estn encerrados entre llaves: { } Estas definiciones e instrucciones son conocidas como el cuerpo de la clase (class body).
42
43
Como se indic anteriormente, una clase es un contenedor de mtodos. Un mtodo (method) es un contenedor de instrucciones que llevan a cabo una tarea. Toda aplicacin tiene que tener un mtodo principal de nombre main que es el punto de comienzo de la aplicacin.
44
El mtodo main siempre lleva el mismo encabezado. Durante el curso se explicarn los componentes de este encabezado.
45
Los mtodos tambin llevan un encabezado y el cuerpo del mtodo (method body) se coloca dentro de llaves. Los mtodos contienen enunciados (statements) que son las instrucciones que se le dan a la computadora. Existen dos tipos principales de enunciados:
Los enunciados de declaracin (declaration statements) permiten indicar el tipo de datos, nombre y, posiblemente, un valor inicial para cada variable.
47
public class NominaApp { public static void main(String[] args) { int horas = 40; double pagoxhora = 25.0, sueldobruto; suledobruto = horas * pagoxhora; System.out.print(Suledo Bruto: $); System.out.println(sueldobruto); } }
48
Los enunciados ejecutable (executable statements) permiten que la computadora lleva a cabo instrucciones tales como:
Obtener
un valor del usuario (input) Asignarle a una variable el resultado de una expresin (process) Mostrar un valor en la pantalla (output)
49
public class NominaApp { public static void main(String[] args) { int horas = 40; double pagoxhora = 25.0, sueldobruto; sueldobruto = horas * pagoxhora; // Process System.out.print(Sueldo Bruto: $); // Output System.out.println(sueldobruto); // Output } }
50
Java provee la clase System que contiene una referencia a la pantalla llamada out. La variable out reconoce los mtodos print y println que se utilizan para mostrar valores en la pantalla (una operacin de output). La clase System es un contenedor de definiciones y mtodos pero no es una aplicacin ya que no contiene el mtodo main.
51
Los clase System y los mtodos print y println pertenecen a lo que se denomina como la Interfaz de Programacin de Aplicaciones (Java API, Application Programming Interface). Un API es una biblioteca (library) que contiene una serie de clases para llevar a cabo ciertas operaciones. Las clases y los mtodos en el Java API estn disponibles para todos los programas en Java.
52
Como el mensaje es una cadena de caracteres, ste debe colocarse entre comillas dobles ().
53
El mtodo println muestra un valor en la pantalla y mueve el cursor al inicio de la prxima lnea. El mtodo print muestra un valor en la pantalla pero no mueve el cursor. Por ejemplo, otra forma de mostrar el mensaje Programming is Fun! es:
System.out.print(Programming); System.out.println( is Fun!);
54
El mtodo println es una forma especial del mtodo print. Por ejemplo, el siguiente enunciado
System.out.println(Programming is Fun!);
es equivalente a
System.out.print(Programming is Fun!\n);
El segundo enunciado utiliza la secuencia de escape \n (newline) para indicar que se debe mover el cursor al inicio de la prxima lnea.
55
Existen varias secuencias de escape (escape sequences) que controlan cmo se muestran los valores en la pantalla pero las veremos cuando las necesitemos. La secuencia \n se puede colocar en cualquier lugar de una cadena de caracteres. Por ejemplo,
System.out.println(Programming\n is Fun!);
muestra lo siguiente:
Programming is Fun!
56
En el programa del ejemplo se calcula el salario de un empleado asumiendo que trabaj 40 horas, a $25 por hora:
grossPay = hours * payRate; System.out.print(Gross Pay: $); System.out.println(grossPay);
Otra forma de mostrar varios valores en una sola lnea es usar el operador +, como muestra este ejemplo:
System.out.println(Gross Pay: $ + grossPay);
Cuando uno de los valores es un caracter o una cadena de caracteres, al operador + se le llama concatenacin. Este operador simplemente une los dos valores. El resultado saldr as en la pantalla:
Gross Pay: $1000.0
58
Documentacin interna
El cdigo fuente de todo programa debe estar documentado con comentarios descriptivos y explicativos. Los comentarios son anotaciones que hace el programador para explicar lneas o secciones de cdigo. Son para las personas que van a ver el cdigo ya que el compilador los ignora.
59
60
Para escribir un comentario de una sola lnea se usan los smbolos //:
// Esto es un comentario.
Para escribir un comentario de varias lneas se comienzan con /* y se finaliza con */:
/* * Esto es un comentario * de dos lneas. */
61