Sie sind auf Seite 1von 76

2.

Introduccin a la
Programacin en Java
Algoritmos y Desarrollo de Programas I

Objetivos

Cuando finalice esta leccin, el


estudiante:
Sabr

qu es Java y para qu tipos de


programas puede ser utilizado.
Conocer los datos ms importantes
sobre el desarrollo histrico de Java.
Podr crear, compilar y ejecutar
programas en Java utilizando
herramientas de la lnea de comandos y
ambientes integrados de desarrollo.
22

Objetivos (cont.)

Cuando finalice esta leccin, el


estudiante:
Podr

identificar los elementos de un


lenguaje de programacin, en
particular de Java.
Sabr lo que es un mtodo y cmo
Java utiliza clases como contenedores
de mtodos.
Podr escribir programas que muestren
mensajes en la pantalla utilizando
interfaces de texto.
33

Objetivos (cont.)

Cuando finalice esta leccin, el


estudiante:
Podr

escribir programas que muestren


mensajes en la pantalla utilizando cajas
de dilogo.
Sabr la diferencia entre
documentacin interna y
documentacin externa y cmo usar la
herramienta javadoc.
44

Qu es Java?

En nuestro curso utilizaremos un lenguaje


de programacin moderno conocido como
Java.
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
55

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.

66

Historia de Java (cont.)

Con el tiempo, el nombre del


lenguaje se cambia a Java 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.
77

Historia de Java (cont.)

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.
Este es el ao en que surge la
primera versin pblica, Java 1.0.
88

Historia de Java (cont.)

Java ha seguido desarrollndose a travs


de los aos.
Las siguientes son las versiones de Java:

Java
Java
Java
Java
Java
Java
Java

1.0
1.1
1.2
1.3
1.4
1.5
1.6

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

99

Ediciones de Java (cont.)

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.
10
10

Ediciones de Java (cont.)

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).
Existen diferentes ediciones del JDK
que se pueden obtener, totalmente
gratis, de Sun Microsystems: Java
SE, Java EE y Java ME.

11
11

Ediciones de Java (cont.)

Java SE (Java Standard Edition)

Java EE (Java Enterprise Edition)

Provee todo lo necesario para la creacin


de aplicaciones y applets.
Permite crear aplicaciones para empresas
que proveen servicios por el Web.

Java ME (Java Micro Edition)

Permite crear aplicaciones para


productos como telfonos celulares y
enseres elctricos.
12
12

Un programa en Java

El siguiente es un programa simple que


muestra el mensaje Hello, world!:

public class HelloWorld {

public static void main(String[] args) {


System.out.println(Hello, world!);
}
}

13
13

Creacin del programa

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.
14
14

Creacin del programa (cont.)

La siguiente ventana muestra el


cdigo fuente del programa escrito
usando Notepad:

15
15

Creacin del programa (cont.)

La siguiente ventana muestra el cdigo


fuente del programa escrito usando el
editor de Eclipse:

16
16

Compilacin y ejecucin del programa

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.
17
17

Compilacin y ejecucin del programa


(cont.)

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).
18
18

Compilacin y ejecucin del programa


(cont.)
Step 1

Text Editor

HelloWorldApp.java
(Source File)

Step 2

Java Complier

HelloWorldApp.class
(Byte Code File)

Step 3

Java
Virtual Machine

19
19

Compilacin y ejecucin del programa


(cont.)

Existen varias alternativas para


compilar y ejecutar un programa en
Java:
Puede

hacerse mediante comandos


desde el command prompt del sistema
operativo.
Puede hacerse desde un ambiente
integrado de desarrollo (IDE,
Integrated Development Enviroment).
20
20

Compilacin y ejecucin del programa


(cont.)

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.
21
21

Compilacin y ejecucin del programa


(cont.)

Para compilar y ejecutar un programa


desde el command prompt es
necesario hacer tres cosas:
1.

Indicarle al sistema operativo dnde est


el compilador y el JVM:
set path=C:\Program Files\Java\jdk1.6.0_07\bin

2.

Compilar el programa:
javac HelloWorldApp.java

3.

Invocar el JVM para ejecutar el programa:


java HelloWorldApp

22
22

Compilacin y ejecucin del programa


(cont.)

La siguiente ventana muestra cmo


se compila y ejecuta el programa
desde el command prompt:

23
23

Compilacin y ejecucin del programa


(cont.)

Para compilar y ejecutar un


programa desde Eclipse (un
IDE), se presiona el botn Run:

24
24

Compilacin y ejecucin del programa


(cont.)

La siguiente ventana muestra cmo se


compila y ejecuta el programa desde
Eclipse:

25
25

Elementos comunes en los lenguajes


de programacin

Los lenguajes de programacin,


incluyendo Java, incluyen una serie
de elementos comunes:
Palabras

reservadas
Identificadores
Signos de puntuacin
Operadores
Reglas de Sintaxis

26
26

Elementos comunes en los lenguajes


de programacin (cont.)

Usaremos el siguiente programa


para identificar estos elementos:

public class PayrollApp {


public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
System.out.print(Gross Pay: $);
System.out.println(grossPay);
}
}
27
27

Elementos comunes en los lenguajes


de programacin (cont.)

Las palabras reservadas


(keywords) tienen un significado
especial en el lenguaje.
En

el programa aparecen: public,


class, static, void, int y double.

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.

28
28

Elementos comunes en los lenguajes


de programacin (cont.)

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:

PayRollApp, String y System para el


programa y otras clases
args, hours, payRate, grossPay y out
para las variables
main y println para los mtodos

29
29

Elementos comunes en los lenguajes


de programacin (cont.)

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.
30
30

Elementos comunes en los lenguajes


de programacin (cont.)

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

ejemplo, grossPay y GrossPay


seran dos identificadores distintos.

31
31

Elementos comunes en los lenguajes


de programacin (cont.)

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 (.).
32
32

Elementos comunes en los lenguajes


de programacin (cont.)

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
33
33

Elementos comunes en los lenguajes


de programacin (cont.)

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

A estos operadores se les llama


operadores sobrecargados.
34
34

Elementos comunes en los lenguajes


de programacin (cont.)

Un operador importante es el =,
que requiere una variable a la
izquierda y una expresin a la
derecha:
grossPay = hours * payRate;

Este operador, llamado operador


de asignacin, evala la expresin
de la derecha y asigna el resultado
a la variable de la izquierda.
35
35

Elementos comunes en los lenguajes


de programacin (cont.)

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.
36
36

Elementos fundamentales de un
programa en Java

Consideremos de nuevo este


programa:

public class PayrollApp {


public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
System.out.print(Gross Pay: $);
System.out.println(grossPay);
}
}
37
37

Elementos fundamentales de un
programa en Java (cont.)

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.
38
38

Elementos fundamentales de un
programa en Java (cont.)

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
PayrollApp.
Por lo tanto, el archivo fuente se
tiene que llamar PayrollApp.java
39
39

Elementos fundamentales de un
programa en Java (cont.)

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).
40
40

Elementos fundamentales de un
programa en Java (cont.)

En el programa de ejemplo se
defini esta clase:

public class PayrollApp {


cuerpo de la clase PayrollApp
}

41
41

Elementos fundamentales de un
programa en Java (cont.)

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.
42
42

Elementos fundamentales de un
programa en Java (cont.)

En el programa de ejemplo se defini


el mtodo main:

public class PayrollApp {

public static void main(String[] args) {


cuerpo del mtodo main
}
}

El mtodo main siempre lleva el


mismo encabezado.
Durante el curso se explicarn los
componentes de este encabezado.

43
43

Elementos fundamentales de un
programa en Java (cont.)

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:

Enunciados de declaracin
Enunciados ejecutables
44
44

Elementos fundamentales de un
programa en Java (cont.)

Los enunciados de declaracin


(declaration statements) permiten
indicar el tipo de datos, nombre y,
posiblemente, un valor inicial para
cada variable.

45
45

Elementos fundamentales de un
programa en Java (cont.)

Nuestro programa contiene los


siguientes enunciados de declaracin
(resaltados):

public class PayrollApp {


public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
System.out.print(Gross Pay: $);
System.out.println(grossPay);
}
}
46
46

Elementos fundamentales de un
programa en Java (cont.)

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)
47
47

Elementos fundamentales de un
programa en Java (cont.)

Nuestro programa contiene los


siguientes enunciados ejecutables
(resaltados):

public class PayrollApp {


public static void main(String[] args) {
int hours = 40;
double payRate = 25.0, grossPay;
grossPay = hours * payRate;
// Process
System.out.print(Gross Pay: $); // Output
System.out.println(grossPay);
// Output
}
}
48
48

Los mtodos print y println

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.

49
49

Los mtodos print y println (cont.)

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.
50
50

Los mtodos print y println (cont.)

Para mostrar en la pantalla (out) el


mensaje:
Programming is Fun!

se puede utilizar el mtodo println


de la siguiente manera:
System.out.println(Programming is Fun!);

Como el mensaje es una cadena de


caracteres, ste debe colocarse entre
comillas dobles ().
51
51

Los mtodos print y println (cont.)

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!);
52
52

Los mtodos print y println (cont.)

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.
53

Los mtodos print y println (cont.)

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!
54

Los mtodos print y println (cont.)

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);

El resultado saldr as en la
pantalla:
Gross Pay: $1000.0
55
55

Los mtodos print y println (cont.)

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
56

Cajas de dilogo

Otra forma de mostrar mensajes en la


pantalla es usando cajas de dilogo.
Una caja de dilogo (dialog box) es una
ventana que muestra un mensaje o
solicita datos.
Las principales cajas de dilogo son:

Message Dialog muestra un mensaje


Input Dialog solicita un valor al usuario
Confirm Dialog le hace al usuario una
pregunta de tipo S/No/Cancelar
57
57

Cajas de dilogo (cont.)

A continuacin se muestran los tres


tipos de cajas de dilogo:
Message

Input

Dialog:

Dialog:

Confirm

Dialog:
58
58

Cajas de dilogo (cont.)

Para mostrar cajas de dilogo se usan los


mtodos showMessageDialog,
showInputDialog y showConfirmDialog.
Estos mtodos se definen en la clase
JOptionPane.
Como ocurre con la clase System, la clase
JOptionPane es un contenedor de
definiciones y mtodos pero no es una
aplicacin ya que no contiene el mtodo
main.
59
59

Cajas de dilogo (cont.)

Para tener acceso a la clase


JOptionPane y a sus mtodos hay
que colocar la siguiente instruccin al
inicio del programa:
import javax.swing.JOptionPane;

Este enunciado le indica al


compilador de Java dnde se
encuentra la clase JOptionPane.
La clase JOptionPane es parte del
paquete javax.swing.
60

Cajas de dilogo (cont.)

Los paquetes permiten agrupar


clases relacionadas y el paquete
javax.swing contiene las clases
que permiten crear aplicaciones con
interfaces grficas para los
usuarios (GUI, Graphical User
Interface).

61
61

Cajas de dilogo (cont.)

El mtodo main de todo programa


que use cajas de dilogo debe
terminar con el siguiente
enunciado:
System.exit(0);

Este enunciado permite que el


programa termine su ejecucin
despus de cerrar la ventana de
dilogo.
62

El mtodo showMessageDialog

El mtodo showMessageDialog permite


mostrar un mensaje en una caja de
dilogo.
Por ejemplo:
JOptionPane.showMessageDialog(null,
This is a message dialog box.);

63
63

El mtodo showMessageDialog
(cont.)

El mtodo showMessageDialog
requiere dos argumentos
(valores):
El

primero normalmente es null para


que la caja se muestre en el centro de
la pantalla
El segundo es el mensaje

Existen versiones de este mtodo


que permiten indicar el ttulo y el
cono que se muestran.
64
64

El mtodo showMessageDialog
(cont.)

El siguiente programa muestra el


mensaje Hello, World! usando una
caja de dilogo:

import javax.swing.JOptionPane;
public class HelloWorldGUIApp {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Hello, World!");
System.exit(0);
}
}

65
65

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.

66
66

Documentacin interna (cont.)

Existen tres formas de hacer


comentarios en Java:
Comentarios

de una sola lnea


Comentarios de ms de una lnea
Comentarios de documentacin

67
67

Documentacin interna (cont.)

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.
*/
68
68

Documentacin interna (cont.)

El tercer tipo de comentario se conoce en


Java como comentario de
documentacin.
Se usan para describir las clases y los
mtodos.
Esta forma de comentario comienza
con /** y termina con */
/**
* Esto es un comentario de
* documentacin de dos lneas.
*/
69
69

Documentacin interna (cont.)


/**
* This program computes the gross pay for an employee
* that works 40 hours at $25 an hour.
* @author Tony Gaddis
* @version 1.0, September 08, 2008
*/
public class PayrollApp {
/**
* The application's entry point.
*/
public static void main(String[] args) {
/*
* Declare the numbers of hours worked during the
* week, the pay rate and the gross pay.
*/
int hours = 40;
double payRate = 25.0, grossPay;
// Compute and display the gross pay.
grossPay = hours * payRate;
System.out.println("Gross Pay: $" + grossPay);
}

70
70

Documentacin interna (cont.)

Como se puede observar en el


programa anterior, los comentarios
de documentacin pueden contener
unas etiquetas precedidas por el
smbolo @.
@author permite indicar el nombre del
autor del programa
@version permite indicar la versin y
la fecha del programa

Estas etiquetas son procesadas por


una herramienta llamada javadoc.
71
71

Documentacin externa y javadoc

Los comentarios de documentacin


pueden ser ledos y procesados por
javadoc, un programa que viene
en el JDK.
javadoc puede leer el cdigo fuente
(source code) y generar archivos en
HTML que documentan el cdigo
externamente.
72
72

Documentacin externa y javadoc


(cont.)

Los archivos generados por javadoc


pueden ser vistos con un browser
como Internet Explorer o Firefox.
La herramienta javadoc puede
ejecutarse desde el command
prompt y desde Eclipse.
Desde el command prompt se
puede ejecutar javadoc as:
javadoc PayrollApp.java

73

Documentacin externa y javadoc


(cont.)

Desde Eclipse, se
puede ejecutar
javadoc
seleccionando
Project
Generate
Javadoc.
El documento
generado se
almacenar en
un folder llamado
doc.
74

Documentacin externa y javadoc


(cont.)

A continuacin se muestra la documentacin


generada:

75

Documentacin externa y javadoc


(cont.)

Adems de la documentacin
generada por javadoc, cualquier
otro manual que escriba el
programador y que no forme parte
del cdigo fuente constituye la
documentacin externa del
programa.
Este tipo de documentacin externa
incluye los manuales de anlisis,
diseo y operacin del programa.

76
76