Java Ago Dic07

78
Programación I I Agosto - Diciembre 07 M.T. María Luisa J uárez Aguilar PROGRAMACI ÓN I I Programación Orientada a Objetos con J AVA M.T. María Luisa J uárez Aguilar [email protected]

Transcript of Java Ago Dic07

Page 1: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

PROGRA M A CI ÓN I IPr og r a ma c ión Or ie nt a d a a Ob j e t os

c on J A VA

M .T . M a r ía Luis a J uá r e z A g uila [email protected]

Page 2: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E va lua c ión

20 %PROYECTO FINAL4

3

2

1

10 %PRACTICAS

10 %LABORATORIO

60 %EXÁMENES PARCIALES

Page 3: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ob s e r va c ione s • Para poder obtener el Promedio Final el alumno debe

cumplir con los cuatro puntos anteriores de la evaluación.

• Para tener derecho de presentar el proyecto final el alumno debe cumplir con los puntos 1, 2 y 3 de la evaluación y obtener una calificación aprobatoria, de lo contrario, debe presentar su examen extraordinario en la fecha programada por el departamento escolar.

• La asistencia debe ser del 80% mínimo por parcial.

Page 4: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

CON T E N I DO DE L PROGRA MA

Page 5: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 6

M.T . Ma r ía Luis a J uá r e z A g uila r

His t or ia d e J a va

Page 6: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

His t or ia d e J a va

• Sun anunció formalmente a Java en 1995.• Actualmente Java se utiliza para desarrollar

aplicaciones empresariales a gran escala, para mejorar la funcionalidad de los servidores de WWW (las computadoras que proporcionan el contenido que vemos en nuestros navegadores Web), para proporcionar aplicaciones para los dispositivos domésticos (teléfonos celulares, radiolocalizadores y asistentes digitales personales) y para muchos otros propósitos.

Page 7: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

His t or ia d e J a va

• El JDK incluye herramientas para construcción de interfaces gráficas de usuario (GUI, Graphical User Interface), trabajo en red e implantación de applets, pequeños programas de Java que agregan contenido dinámico a las páginas Web.

• La independencia de la plataforma es una razón importante del éxito de Java. Sus programas se compilan en códigos de bytes (bytecodes) y pueden ejecutarse en cualquier computadora con un intérprete o una máquina virtual de Java (JVM, Java Virtual Machine), proporcionando un ambiente en tiempo de ejecución para ejecutar programas de Java.

Page 8: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

His t or ia d e J a va

• Java es un nuevo lenguaje de programación orientado a objetos desarrollado por Sun Microsystems

• Descrito como: Simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multitarea y dinámico.

Page 9: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ca r a c t e r ís t ic a s d e J a va

• Simple:– Elimina la complejidad de los lenguajes como "C", mantiene las

facilidades básicas de lenguaje en un mínimo y proporciona un gran

número de extras con las librerías de clases. • Orientado a objetos:

– Encapsulacion

– Herencia

– Polimorfismo • Distribuido:

– Capacidades de interconexión TCP/IP, además de los protocolos http, ftp.

Page 10: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ca r a c t e r ís t ic a s d e J a va

• Robusto: – Busca errores en tiempo de compilación como en ejecución.

– El sistema de Java maneja la memoria de la computadora por lo que no es necesario reocuparse por apuntadores, memoria que no se esté utilizando, etc.

• Portable:Como el código compilado de Java (conocido como bytecode) es interpretado, un programa compilado de Java puede ser utilizado por

cualquier computadora que tenga implementado el intérprete de Java.

Page 11: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ca r a c t e r ís t ic a s d e J a va

• Seguro:

El sistema de Java tiene ciertas políticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos críticos de una computadora.

• Arquitectura neutral:

Compila su código a un archivo objeto de formato independiente.

Page 12: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ca r a c t e r ís t ic a s d e J a va

• Multitarea:El lenguaje soporta la concurrencia a través de hilos, o sea que puede ejecutar varios procedimientos en paralelo.

• Dinámico:

Java no requiere compilar todas las clases de un programa para que funcione, si se realiza una modificación a una clase, Java se encarga de encontrar cada clase.

Page 13: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ot r os le ng ua j e s

• Alto nivel: FORTRAN (FORmula TRANslator), COBOL (COmmon Business Oriented Language), Pascal, ADA, BASIC (Beginner´s All-Purpose Symbolic Instruction Code, Código de instrucciones simbólicas de uso general para principiantes).

Page 14: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ot r os le ng ua j e s

• ANSI C, evolucionó de otros dos lenguajes, BCPL y B. Lenguaje de desarrollo para el S.O. UNIX. En la actualidad todos los nuevos sistemas operativos importantes se escriben en C o C ++.

• C++ evolucionó de C, proporciona un conjunto de características que “mejoran” a C pero lo más importante es que proporciona la capacidad de una programación orientada a objetos.

Page 15: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ot r os le ng ua j e s

• Visual Basic, se introdujo para simplificar el desarrollo de aplicaciones para Microsoft Windows.

• Visual Basic.NET, diseñado para la nueva plataforma de programación de Microsoft: .NET ofrece una orientación a objetos mejorada, hace uso de la biblioteca .NET.

• Visual C++ es una implementación de Microsoft de C++.

Page 16: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ot r os le ng ua j e s

• .NET y C #, la plataforma .NET permite la distribución de aplicaciones basadas en Web a muchos dispositivos (incluso celulares) y computadoras de escritorio. El lenguaje de programación C#, desarrollado en Microsoft, fue diseñado específicamente para la plataforma .NET como un lenguaje que permitiera a los programadores migrar fácilmente a .NET.

Page 17: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I nt e r ne t y W or ld W id e W e b

• Internet (red global de computadoras) desarrollada hace más de cuatro décadas, patrocinada por el Departamento de Defensa de los Estados Unidos.

• En principio, conectaba los sistemas de cómputo principales de una docena de universidades y organizaciones de investigación, hoy día, es utilizada por cientos de millones de computadoras en todo el mundo.

Page 18: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I nt e r ne t y W or ld W id e W e b

• World Wide Web permite a los usuarios de computadoras localizar y ver documentos basados en multimedia, sobre casi cualquier tema, a través de Internet.

• Con la introducción de WWW, Internet se ha convertido explosivamente en uno de los principales mecanismos de comunicación en todo el mundo.

• Internet y WWW se encuentran, entre las creaciones más importantes de la humanidad.

Page 19: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Pa s os pa r a e d it a r y e j e c ut a r un pr og r a ma e n J a va

Page 20: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ele me nt os b á s ic os d e l le ngua j e J a va

Definición del método main:public static void main ( String args[ ] ) { }

NOTA: Es obligatorio que los tipos de los parámetrosde main y el tipo de resultado sean los mostradosarriba.

Page 21: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

T ipos d e d a t os

– Primitivos:• byte, short, int, long, float, double, char, boolean

– Definidos por el usuario• Se refiere a los nuevos tipos de objeto, llamados

clases

Page 22: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

True & FalseVariable booleanaboolean

Caracter Unicodechar

15 d.s.

10^(-324) a 10^308

Punto flotante,

64 bits

double

6 dígitos significativos

10^(-46) a (10^38)

Punto flotante, 32 bits

float

-(2^63) a (2^63)-1Entero 64 bitslong

-2,147,483,648 a

2,147,483,647

Entero 32 bitsint

-32,768 a 32767Entero 16 bitsshort

-128 a 127Entero 8 bitsbyte

Page 23: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Lit e r a le s

• Por default, una constante entera es de tipo int.• Por default, una constate con decimales es double.• Para cambiar estos default podemos hacer uso de las

literales l y f.• ejemplos:

123l, se cambia a long

23.8f, se cambia a float

Page 24: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I d e nt if ic a d or e s

• Se usan para nombrar variables, constantes, métodos, clases, etc.

• Deben iniciar con letra (a-z, A-Z)• Solo pueden contener letras, números, underline (_) y

$• Pueden ser de cualquier longitud• Se hace diferenciación entre mayúsculas y minúsculas

Page 25: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E s t á nd a r e s pa r a id e nt if ic a d or e s

• Por estándar, se utiliza la primera letra minúscula para nombres de métodos, variables y constantes.

• Por estándar, se utiliza la primera letra mayúscula para nombres de clases.

• Si el nombre esta compuesto por más de una palabra se recomienda se utilice mayúscula en la primera letra de cada una de las palabras (p.e. ImpuestoPredial, EmpleadoVentas).

Page 26: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I d e nt if ic a d or e s

• Ejemplos:

Válidos no válidos

Empleado 2004ventas

x _area

gastos2004 tu edad

Page 27: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Pa la b r a s c la ve

whilesupernewforcontinue

volatilestaticnativefloatclass

voidshortlongfinallychar

tryreturninterfacefinalcatch

throwspublicintextendscase

throwprotectedinstanceofelsebyte

thisprivateimportdoublebreak

synchronizedpackageimplementsdoboolean

switchnullifdefaultabstract

Page 28: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

S e c ue nc ia s d e e s c a pe

\n carácter de nueva línea

\t tabulador horizontal

\r retorno de carro

\\ carácter de barra inclinada

\’ carácter comilla simple

\” carácter de dobles comillas

\0 caracter nulo

Page 29: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Come nt a r ios

/* Heredado de C */

// Heredado de C++

Page 30: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Cons t a nt e s

•Son valores que no cambian mientras el programa está ejecutando.•Ejemplos:

e

pi

velocidad de la luz

aceleración debido a la gravedad

Page 31: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Cons t a nt e s (c ont .)

• Enteras: Se representan en notación decimal, octal o hexadecimal

• Para octales: prefijo 0• Para Hexadecimales: prefijo 0x

• Tipo carácter: Se encierran entre dos comillas simples (por ejemplo, ‘x’)

• Tipo cadena: Se encierran entre dobles comillas (por ejemplo, “cadena”)

Page 32: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Cons t a nt e s (c ont .)

• Un enfoque es escribir los valores directamente en el programa.

• Ejemplos:

area = 3.1416 * r * r ;

energia = masa * altura * 9.8f;

Page 33: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Cons t a nt e s (c ont .)

• Otro enfoque es declarar tales números como variables que tienen un valor constante y asignarles un nombre.

final tipo_dato constante = valor;Ejemplo:

final float g = 9.8f;….energia = masa * altura * 9.8f;

Page 34: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Va r ia b le s

• ¿Qué es?• Es un espacio en memoria que nos sirve para

almacenar información.• El tamaño de este espacio de memoria varía

dependiendo de la información que se desea guardar, esto es, depende del tipo de dato con que se declare la variable.

• El nombre con que se referencia una variable sigue la regla para identificadores.

Ver página 45

Page 35: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

De c la r a c ión d e va r ia b le s

Tipo_dato lista_de_variables;

• Donde lista_de_variables puede ser el nombre de una variable o una lista de variables separadas por comas.

• No se permite el uso de palabras reservadas ni reutilizar nombres de identificadores.

• Java es sensible a mayúsculas

Page 36: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

De c la r a c ión d e va r ia b le s (c ont .)

• Ejemplos:

int num3;

int x = 0, num2 = 5;

int num1 = num2;

Page 37: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ope r a d or e s a r it mé t ic os

• Aritméticos+ suma- resta* multiplicación/ división% residuo de la división++ incremento en uno-- decremento en uno/ para datos enteros, regresa la parte entera del resultado

Ver página 46

Page 38: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ope r a d or e s a r it mé t ic os (c ont .)

• Ejemplos:

7 / 3 regresa 2

int x = 7/3; asigna a x un 2

double y = 7/3; asigna a y un 2.0

double y = 7/3.0; asigna a y un 2.333

Page 39: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ope r a d or e s r e la c iona le s y d e ig ua ld a d

• Relacionales:< x > y x es mayor que y> x < y x es menor que y<= x <= y x es menor o igual que y>= x >= y x es mayor o igual que y

• De igualdad:== x == y x es igual a y!= x != y x no es igual a y

Page 40: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ope r a d or e s lóg ic os (c ont .)

&& AND condicional

|| OR condicional

! NOT lógico o negación lógica

Ver página 167

Page 41: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Ope r a d or e s d e a s ig na c ión

– Común: =– Compuestos: +=, -=, *=, /=

Expresión equivale a expresión

c += a c = c + a

Modifican el valor de la variable situada en el lado izquierdo del operador.

Page 42: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Pr ior id a d d e los ope r a d or e s

Nivel operador asociatividad

1 !,--,++,-(negativo), + (positivo) de derecha a izquierda

3 *, /, % de izquierda a derecha

4 +, - de izquierda a derecha

5 <, <=, >, >= de izquierda a derecha

6 ==, != de izquierda a derecha

7 && de izquierda a derecha

8 || de izquierda a derecha

9 =, +=, -=,*=, /=, %= de derecha a izquierda

Page 43: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E x pr e s ione s

int a = 5; a = 5

b = 8 + a++; b = (8 + 5) = 13, a = 6

c = 8 + ++a; c = (8 + 7) = 15, a = 7

Ver página 46

Page 44: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E x pr e s ione s (e j e r c ic ios )

• Para las variables int a = 5, p = 6 y q = 3 y las variables double b, y r, evaluar las siguientes expresiones:r = 5 – 3 * 9 / 2 + ++p;

b = 5 / 2 + --a;

r = q++ -p - +2;

Page 45: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Conve r s ione s d e t ipo (c a s t ing )

• Es un proceso que convierte un tipo de dato a otro tipo de dato.

• Tipos de casting:– Implícito.

– Explícito.

Page 46: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Conve r s ione s d e t ipo (c ont .)

• Casting implícito:Se realiza de forma automática cuando un tipo de menor capacidad se asigna a un tipo de mayor capacidad, también llamado promoción numérica.

byte -> short -> int -> long -> float -> double ejemplo:

double n;int x = 7; n = 2.0n = x / 3;

Page 47: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Conve r s ione s d e t ipo (c ont .)

• Casting explícito:

Es necesario utilizar un operador de tipo cast.

Ejemplo:

double n;

int a = 7;

n = (double) a / 3; n = 2.333

Page 48: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Conve r s ione s d e t ipo (c ont .)

int x = 6, y = 10;

double cociente;

Como solución se usaría la siguiente conversión de tipo:

cociente = (double) x / y;

Page 49: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E j e r c ic ios

• ¿Cuál de las siguientes formas es la forma correcta de realizar el casting y por qué?

a) b)

int n; int n;

double x = 2.1; double x = 2.1;

n = x; n = (int) x;

Page 50: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

F unc ione s b á s ic a s (pr e d e f inid a s )

• La clase Math proporciona una colección de métodos que le permitirán realizar cálculos matemáticos comunes.

• Para usar cualquiera de las funciones o constantes, la forma general de uso es la siguiente:

variable = Math.función( parámetros); variable = Math.constante;

• O usarse como argumento, como parte de una expresión,etc.

Page 51: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

F unc ione s b á s ic a s (pr e d e f inid a s , c ont .)

• Ejemplos:

y = Math.sqrt( x ) * x;

y = Math.PI * Math.pow( radio, 2 );

calcula( Math.round(y) , 20, valor);

Page 52: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

F unc ione s b á s ic a s (pr e d e f inid a s )

abs( x ) pow( x, y )ceil( x ) sin( x )cos( x ) sqrt( x )exp( x ) tan( x )floor( x )log( x )max( x, y )

min( x, y ) ver página 191

Page 53: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

F unc ione s b á s ic a s pr e d e f inid a s (c ont .)

• Ejercicios:

Para variables int i = 4 y j = 2, evalúa las siguientes funciones predefinidas:

abs( i – 2 * j )

sqrt( i * i + j * j )

pow( i, j )

Page 54: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E nt r a d a y s a lid a e s t á nd a r

• Para leer y escribir de/en la consola se utiliza la clase System.

• System.in: permite introducir datos del teclado.• System.out: permite enviar datos a la pantalla

Page 55: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E s c r it ur a

• Print escribe y no brinca de línea• Println escribe y brinca de línea

Nota: todo lo que se escribe se debe convertir a String

Page 56: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Pr ime r pr og r a ma e j e mplo

// Programa para imprimir texto en la pantallapublic class Bienvenido1{

public static void main ( String args[] ){

System.out.println ( “ Bienvenido a la programación en Java! ” );} //fin de main

} //fin de la class Bienvenido1

Page 57: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Outline

• Welcome4.java

• main

• printf

•Program output

1 // Ejemplo1: Bienvenido.java

2 // Imprimiendo multiples lineas.

3

4 public class Bienvenido // clase principal

5 {

6 // método main empieza la ejecución de la aplicación Java

7 public static void main( String args[] )

8 {

9 System.out.print(

10 "¡Bienvenido a" + "\n la programacion en Java!" );

11

12 } // fin metodo main

13

14 } // fin class Bienvenido

¡Bienvenido a la programación en Java!

System.out.print despliega datos formateados en pantalla.

Page 58: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Le c t ur a e s t á nd a r

• Se leen datos desde el teclado.• Utilice el compilador jdk1.5.0_04• Ver el siguiente ejemplo

Page 59: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Le c t ur a e s t á nd a r

• Otra forma de dar entrada a datos desde el teclado es la siguiente:

• Use la clase BufferedReader y el método readLine() como se muestra a continuación:

Private BufferedReader teclado;

Teclado = new BufferedReader (new InputStreamReader(System.in,1);

• Nota: el 1 indica el tamaño del buffer (puede omitirse).

Page 60: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Le c t ur a e s t á nd a r

• Para leer la línea de datos, se utiliza:

String cadena = teclado.readLine();

Page 61: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

import java.io.*; //importa el paquete java.io

public class nombre

{

public static void main(String args[]) throws IOException //excepciones que lanza el método

{

private BufferedReader teclado;

String nombre; //declara una variable cadena

//se crea la conexión con el teclado

teclado = new BufferedReader(new InputStreamReader(System.in),1);

System.out.println( "Cual es tu nombre?");

nombre = teclado.readLine();

System.out.print("Felicidades ");

System.out.print(nombre);

System.out.println(" ! se leyo tu nombre del teclado");

System.out.println("Bye");

}

}

Page 62: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

import java.io.*; //importa el paquete java.io

public class Cuadrado

{

public static void main(String args[]) throws IOException //excepciones que lanza el método

{

private BufferedReader teclado;

String nombre, dato; //declara una variable cadena

float numero;

//se crea la conexión con el teclado

teclado = new BufferedReader(new InputStreamReader(System.in));

System.out.println( "Cual es tu nombre?");

nombre = teclado.readLine();

System.out.println( “Dame un numero real (con punto decimal)");

dato = teclado.readLine();

//convertir el string a numero

numero = Float.parseFloat(dato);

Page 63: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

// se despliegan resultados

System.out.print(“El cuadrado del numero que ");

System.out.print(nombre);

System.out.println(" tecleo es: “ + (numero * numero));

System.out.println("Bye");

}

}

Page 64: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 6

M.T . Ma r ía Luis a J uá r e z A g uila r

I ns t r uc c ione s c ond ic iona le s

Page 65: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I ns t r uc c ión if - e ls e

• Estatuto if :if (condición)

instrucción uno;else

instrucción dos;

Nota: las instrucciones uno o dos pueden ser compuestas, en la forma { inst1; … instn ;}

Page 66: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

if s imple

• También puede omitirse la parte else:

if (condición)

instrucción;

Page 67: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Operadores algebraicos de igualdad y relacionales

Operadores de igualdad y relacionales en Java

Ejemplo de una condición en Java

Significado de una condición en Java

Operadores de igualdad == x == y x es igual a y != x != y x no es igual a y Operadores relacionales > x > y x es mayor que y < x < y x es menor que y >= x >= y x es mayor que o igual a y ≤ <= x <= y x es menor que o igual a y

Ope r a d or e s r e la c iona le s y d e ig ua ld a d

Page 68: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Outline

• Comparison.java

• (1 of 2)• 1. Class

Comparison

1.1 main

1.2 Declarations

1.3 Input data (nextInt)

1.4 Compare two inputs using if statements

1 // Fig. 2.15: Comparison.java 2 // Compara enteros usando estatutos if, operadores relacionales 3 // y operadores de igualdad. 4 import java.util.Scanner; // uso de la class Scanner 5 6 public class Comparison

7 {

8 // el método main comienza la ejecución de la aplicación Java 9 public static void main( String args[] )

10 { 11 // crea una variable Scanner para obtener entrada desde la ventana de comandos 12 Scanner input = new Scanner( System.in ); 13 14 int number1; // primer número a comparar 15 int number2; // segundo número a comparar 16 17 System.out.print( "Escriba el primer entero: " ); // prompt 18 number1 = input.nextInt(); // leer el primer número del usuario 19 20 System.out.print( "Escriba el segundo entero: " ); // prompt 21 number2 = input.nextInt(); // leer el segundo número del usuario 22 23 if ( number1 == number2 ) 24 System.out.printf( "%d == %d\n", number1, number2 ); 25 26 if ( number1 != number2 ) 27 System.out.printf( "%d != %d\n", number1, number2 ); 28 29 if ( number1 < number2 ) 30 System.out.printf( "%d < %d\n", number1, number2 );

Al evaluarse la igualdad, despliega el resultado usando printf.

Compara dos números usando

operador relacional <.

Page 69: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Outline

• Comparison.java

• (2 of 2)

• Program output

31 32 if ( number1 > number2 ) 33 System.out.printf( "%d > %d\n", number1, number2 );

34

35 if ( number1 <= number2 )

36 System.out.printf( "%d <= %d\n", number1, number2 );

37

38 if ( number1 >= number2 )

39 System.out.printf( "%d >= %d\n", number1, number2 );

40

41 } // fin método main

42

43 } // fin class Comparison Escriba el primer entero: 777 Escriba el segundo entero: 777 777 == 777 777 <= 777 777 >= 777 Escriba el primer entero: 1000 Escriba el segundo entero: 2000 1000 != 2000 1000 < 2000 1000 <= 2000

Escriba el primer entero: 2000 Escriba el segundo entero: 1000 2000 != 1000 2000 > 1000 2000 >= 1000

Compara dos números usando

operadores relacionales >, <=

y >=.

Page 70: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E r r or e s c omune s d e pr og r a ma c ión

• Olvidar el paréntesis derecho/izquierdo en la condición del estatuto if.

• Confundir el operador de igualdad == con el operador de asignación =.

• Contener espacios en los operadores relacionales ==, !=, >= y <= entre sus símbolos = =, ! =, > = y < =, respectivamente.

Page 71: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

E r r or e s c omune s d e pr og r a ma c ión

• Colocar al revés los operadores !=, >= y <=, =!, => y =<.

• Colocar un punto y coma inmediatamente después del paréntesis derecho de la condición del estatuto if.

Nota: todos estos son errores de compilación.

Page 72: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I ns t r uc c ión s wit c h

switch (expresion)

{ case constante1 : sentencia1;

case constante2 : sentencia2;

case constanten : sentencian;

default : sentencia;

}

Page 73: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I ns t r uc c ión s wit c h (c ont .)switch (calif){ case 0:

case 1:case 2:case 3:case 4:case 5:case 6: System.out.println(“REPROBADO”); break;case 7:case 8: System.out.println(“ALUMNO REGULAR”); break;case 9:case 10: System.out.println(“ALUMNO EXCELENTE”); break;default: System.out.println(“CALIFICACION INVALIDA”); break;

}

Page 74: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

N ot a s g e ne r a le s

• La condición de un if debe estar dentro de paréntesis.• Si el if o el else tienen varias sentencias, estos deben estar entre

llaves {}.• Todas las sentencias dentro del if o dentro del else deben ser

seguidos por un punto y coma.• La expresión a evaluar dentro de un switch debe de ser int,

char, short o byte.• Es importante no olvidar la instrucción break en cada caso a

trabajar dentro del switch.

Page 75: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

I ns t r uc c ione s r e pe t it iva s( c ic los )

Page 76: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

T ipos d e c ic los

• while• for• do-while

Page 77: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Cic lo wh ile

while ( condición )

instrucción;

• El cuerpo del ciclo while puede ser compuesto y para ello debe utilizar las llaves {inst1; …; inst2; }

• Ver ejemplo:

Page 78: Java Ago Dic07

Pr og r a ma c ión I I A g os t o - Dic ie mb r e 0 7

M.T . Ma r ía Luis a J uá r e z A g uila r

Cic lo f or

for (inicialización; condicion; actualización)

instrucción;

Donde instrucción puede ser más de una instrucción encerradas entre llaves {}.