Está en la página 1de 41

Conceptos del LDP Java (II)

Recordando...

JAVA y su historia

Caractersticas generales Mquina Virtual, la JVM

Modelo de Traduccin

Sintaxis bsica Instalacin y configuracin Ejemplo bsico

Principales elementos de un programa

Variables y Constantes

Declarar variables tipoDato nombreVariable; tipoDato nombreVariable = valor_inicial; float promedio_curso = 0.0;

Declarar constantes static final tipo nombre = valor;

Algunas funciones especiales

Operaciones matemticas

Math.sin(x) Seno x Math.pow(x,n) xn Math.round(6.6) 7 Math.random() Math.abs( x ) Math.sqrt(x) Math.max( a,b ) Math.min( a,b ) Math.PI devuelve un double para int, long, float y double ... para int, long, float y double para int, long, float y double contiene el valor del nmero PI

Elementos comunes en los LDP

Algunos operadores pueden utilizarse para varias cosas. Por ejemplo, el operador + puede ser utilizado para:
o Sumar dos nmeros o Indicar que un nmero es positivo o Concatenar (unir) dos cadenas de caracteres

Elementos comunes en los LDP

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. Recordar su equivalencia con el operador usado en PSeInt.

Elementos comunes en los LDP

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. Errores de sintaxis --> corregir!!!

Elementos fundamentales de un programa en Java

Consideremos este programa:

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

Elementos fundamentales de un programa en Java

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.

Elementos fundamentales de un programa en Java

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

10

10

Elementos fundamentales de un programa en Java

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

11

11

Elementos fundamentales de un programa en Java

En el programa de ejemplo se defini esta clase:

public class PayrollApp { cuerpo de la clase PayrollApp }

12

12

Elementos fundamentales de un programa en Java

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.

13

13

Elementos fundamentales de un programa en Java

En el programa de ejemplo se defini el mtodo main:


public static void main(String[] args) { cuerpo del mtodo main }

public class PayrollApp {

El mtodo main siempre lleva el mismo encabezado.

14

14

Elementos fundamentales de un programa en Java

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 al computador. Existen dos tipos principales de enunciados:
Enunciados de declaracin Enunciados ejecutables

15

15

Elementos fundamentales de un programa en Java

Los enunciados de declaracin (declaration statements) permiten indicar el tipo de datos, nombre y, posiblemente, un valor inicial para cada variable. Declaramos TODAS las variables que se usarn!!!

16

16

Elementos fundamentales de un programa en Java

Nuestro programa contiene los siguientes enunciados de declaracin (resaltados):

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

Elementos fundamentales de un programa en Java

Los enunciados ejecutable (executable statements) permiten que la computadora lleve 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) Encuentra una similitud con los contenidos anteriores?

18

18

Elementos fundamentales de un programa en Java

Nuestro programa contiene los siguientes enunciados ejecutables (resaltados):


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

19

19

Salida 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. Para el uso de los mtodos de E/S se requiere usar el paquete Java (ubicado en java.io), mediante la instruccin: import java.io.*;
20

20

Cmo usar Paquetes


Paquetes Java ms importantes:
-

lang para funciones del lenguaje; util para utilidades adicionales; io para entrada y salida; text para formateo especializado; awt para grficos e interfaz grfica de usuario

Para acceder a cualquiera de estos paquetes, excepto lang que est siempre disponible, usamos el siguiente modelo:
import java.nombrepaquete.*;

Los mtodos print y println

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.

Hay que saber de que API's disponemos y que servcios nos prestan...

22

22

Los mtodos print y println

Para mostrar en la pantalla (out) el mensaje:


Programar es divertido!

se puede utilizar el mtodo println de la siguiente manera:


System.out.println( Programar es divertido!);

Como el mensaje es una cadena de caracteres, ste debe colocarse entre comillas dobles ().

23

23

Los mtodos print y println

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 Programar es divertido! es:
System.out.print( Programar ); System.out.println(es divertido!);

24

24

Los mtodos print y println

El mtodo println es una forma especial del mtodo print. Por ejemplo, el siguiente enunciado
System.out.println( Programar es divertido!);

es equivalente a
System.out.print( Programar es divertido!\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.

25

25

Los mtodos print y println

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( Programar\n es divertido!);

muestra lo siguiente:
Programar es divertido!

26

26

Los mtodos print y println

En el programa del ejemplo se calcula el salario de un empleado asumiendo que trabaj 40 horas, a $2500 por hora:
grossPay = hours * payRate; System.out.print(Salario: $); System.out.println(grossPay);

El resultado saldr as en la pantalla:


Salario: $100000

27

27

Los mtodos print y println

Otra forma de mostrar varios valores en una sola lnea es usar el operador +, como muestra este ejemplo:
System.out.println(Salario: $ + 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:
Salario: $100000

28

28

Entrada

Al igual que Java nos ofrece System.out para escribir en pantalla, tenemos System.in para leer de ella. System.in es un objeto de una clase de java que se llama InputStream. Para Java, un InputStream es cualquier cosa de la que se leen bytes. Puede ser el teclado, un archivo, un socket, o cualquier otro dispositivo de entrada. Esto, por un lado es una ventaja. Si todas esas cosas son InputStream, podemos hacer cdigo que lea de ellas sin saber qu estamos leyendo.

29

Entrada Clase Reader


Para Java, una clase Reader es una clase que lee caracteres. Un Reader tiene mtodos para leer caracteres. Con esta clase ya podriamos trabajar. Pero seguimos teniendo System.in, que es un InputStream y no un Reader. Cmo convertimos el System.in en Reader?

Hay una clase en java, la InputStreamReader, que nos hace esta conversin. Para obtener un Reader, nicamente tenemos que instanciar un InputStreamReader pasndole en el constructor un InputStream. El cdigo es el siguiente InputStreamReader isr = new InputStreamReader(System.in);

Estamos declarando una variable "isr" de tipo InputStreamReader. Creamos un objeto de esta clase haciendo new InputStreamReader(...) Entre parntesis le pasamos el InputStream que queremos convertir a Reader, en este caso, el System.in

30

Entrada Clase BufferedReader


BufferedReader br = new BufferedReader (isr); El funcionamiento de esta clase es igual que el InputStreamReader. Cuando le pedimos una lnea completa de caracteres (un String), ella se lo pide al Reader que tenga dentro, los convierte en String y nos lo devuelve. Para pedirle un String, se usa el mtodo readLine(). Este mtodo lee todos los caracteres tecleados (recibidos si fuera otro dispositivo de entrada) hasta que encuentra la pulsacin de la tecla <INTRO>, <RETURN>.
String texto = br.readLine();

Esto lee del teclado un String completo y lo guarda en una variable llamada texto.

31

Tpicos Usos de los Streams (lectura por lneas)


public static void main(String[] args) throws IOException { // 1a. Se lee un archivo lnea a lnea
BufferedReader in = new BufferedReader( new FileReader("IOStreamDemo.java"));

String str01, str02 = new String(); while((str01 = in.readLine())!= null) str02 += str01 + "\n"; in.close(); // 1b. Se lee una lnea por teclado
BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));

System.out.print(Ingresa una Linea:"); str02 = stdin.readLine(); System.out.print(Esta es la Linea:"); System.out.println(str02);

32

Parsing de tipos bsicos


String linea; int a;
BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));

System.out.print(Ingrese un nmero:"); linea = stdin.readLine(); a = Integer.parseInt(linea); System.out.println(a);

Tambin estn disponibles: parseDouble(), parseLong()

33

Excepciones

Cuando en Java puede fallar algo, por ejemplo, la conversin de la cadena en int, suele avisarnos. Esto lo hace "lanzando excepciones". Una excepcin es algo que lanza Java para avisarnos que ha habido un problema. try { // Aqu el cdigo que puede fallar } catch (Exception e) { System.out.println(e); e.printStackTrace(); // Aqu el cdigo para tratar el fallo }
34

Ejemplo: Suma de dos nmeros


br es la variable que permite leer

Lee caracteres y los convierte a nmero

Manejo de Excepciones

35

Entrada Clase Scanner

Otra forma de ingresar datos es mediante la clase Scanner que encontramos en el paquete java.util.Scanner; Este paquete permite ingresar datos de distintos tipos mediante los mtodos:

nextBoolean(), permite ingresar datos booleanos nextInt(), permite ingresar datos de tipo entero nextLong(), permite ingresar enteros ms grandes nextFloat(), permite ingresar nmeros reales nextDouble(), permite ingresar nmeros reales ms grandes nextString() or next(), permite ingresar caracteres nextLine(), permite ingresar una lnea de texto

Entrada Clase Scanner

Para ingresar datos, se debe declarar una variable de tipo Scanner, p. ej: Scanner intro = new Scanner(System.in); En este caso la variable intro permitir el ingreso de distintos tipos de datos mediante los mtodos anteriores. Si vamos a leer un nmero entero num = intro.nextInt();

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.

38

38

Documentacin interna

Existen tres formas de hacer comentarios en Java:


Comentarios de una sola lnea Comentarios de ms de una lnea Comentarios de documentacin

39

39

Documentacin interna

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

40

40

Resumiendo...

Aspectos bsicos de sintaxis Java Principales secciones de un programa Java Elementos bsicos para manejo de E/S Prximas clases

Ejercicios con LDP Java Talleres de entrada

También podría gustarte