programacio´n en java - universidad michoacana de san ...lsc.fie.umich.mx/~pedro/mp/java.pdf ·...

100
Introducci´on Compilaci´oneinterpretaci´on Programas de ejemplo Programaci´ on Orientada a Objetos Fundamentos del lenguaje Java Programaci´ on en Java Pedro Ch´ avez Lugo mailto:[email protected] 30 de agosto de 2011 Pedro Ch´ avez Lugo Programaci´ on en Java

Upload: others

Post on 11-Sep-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Programacion en Java

Pedro Chavez Lugomailto:[email protected]

30 de agosto de 2011

Pedro Chavez Lugo Programacion en Java

Page 2: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

1 Introduccion

2 Compilacion e interpretacion

3 Programas de ejemplo

4 Programacion Orientada a Objetos

5 Fundamentos del lenguaje Java

Pedro Chavez Lugo Programacion en Java

Page 3: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Historia de Java

El lenguaje de programacion de Java fue desarrollado por Sun Mi-crosystems en 1991. Nace de un proyecto de investigacion paradesarrollar software para comunicacion entre aparatos electronicostales como tv’s, equipos de musica, etc.

Problema del proyecto

El proyecto se enfrento al problema de manejar diferentes micro-procesadores, lo cual implico emplear varios conjuntos de nemonicos.Gracias a esto, el rumbo de la investigacion cambio para producir unnuevo lenguaje de programacion idependientemente del procesador,el cual fue bautizado como Oak .

Pedro Chavez Lugo Programacion en Java

Page 4: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Java en Internet

Los investigadores de Sun se dieron cuenta de que los logros alcan-zados en su proyecto de investigacion eran perfectamente aplicadosen Internet, ya que se conforma por una red mundial de computa-doras con diferentes sistemas operativos y diferentes arquitecturasde procesadores.

Consecuencias

Los investigadores abandonaron al proyecto de comunicacion entredispositivos y abordaron el desarrollo de un lenguaje que permitieracrear aplicaciones que se ejecutaran desde un navegador.

Pedro Chavez Lugo Programacion en Java

Page 5: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Applets de Java

Se empezo a hablar de Java y de sus aplicaciones conocidas co-mo applets. Un applet es un programa en Java que se ejecuta enel contexto de una pagina Web en cualquier computadora, inde-pendientemente de su sistema operativo y de la arquitectura de suprocesador.

Ejecucion de un applet

Para ejecutar un applet solo se necesita un navegador que soportela maquina virtual de Java (JVM).

Pedro Chavez Lugo Programacion en Java

Page 6: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Tecnologıa de Java

- Lenguaje de Programacion.

- Plataforma.

Pedro Chavez Lugo Programacion en Java

Page 7: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje de programacion Java

El lenguaje de programacion Java es un lenguaje de alto nivel quetiene asociado las caracterısticas:

- Simple.

- Orientadoa objetos.

- Multihilos.

- Dinamico.

- Seguro.

- Arquitecturaneutra.

Pedro Chavez Lugo Programacion en Java

Page 8: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Plataforma

Una plataforma consiste un ambiente formado de hardware o soft-ware en el cual se ejecutan programas.

Pedro Chavez Lugo Programacion en Java

Page 9: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Plataforma de hardware

Plataforma de hardware consiste de una arquitectura de procesador:

- alpha.

- avr32.

- h8300.

- m32r.

- mips.

- ppc.

- arm.

- i386.

- m68k.

- powerpc.

- sparc.

- sparc64.

Pedro Chavez Lugo Programacion en Java

Page 10: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Plataforma de software

Las plataformas de software pueden ser un sistema operativo, unentorno de programacion, o una combinacion de ambos.

- Microsoft Windows.

- Unix.

- Linux.

- Solaris OS.

- Mac OS.

Pedro Chavez Lugo Programacion en Java

Page 11: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Plataforma de Java

La plataforma de Java se conforma solo por software, la cual seejecuta como una plataforma basada en hardware, la cual consistede:

- Maquina Virtual de Java (JVM).

- Interfaz de programacion de aplicaciones (API).

Pedro Chavez Lugo Programacion en Java

Page 12: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Introduccion

Pedro Chavez Lugo Programacion en Java

Page 13: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion

Un programa escrito en java debe ser compilado para obtener unarchivo en formato de bytecode, el cual corresponde a un codigointermedio que puede ser ejecutado en cualquier plataforma.

Interpretacion

Un codigo en bytecode puede es ejecutado por el interprete quecorresponde a la maquina virtual de Java (JVM).

Pedro Chavez Lugo Programacion en Java

Page 14: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion e interpretacion

Interpretacion

Pedro Chavez Lugo Programacion en Java

Page 15: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Programas

Requisitos

- Java SE Development Kit (JDK).

- Editor de texto.

Pedro Chavez Lugo Programacion en Java

Page 16: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Ejemplo

Hola Mundo

/**

* The HelloWorldApp class implements an application

* that simply prints "Hello World!" to standard

* output.

*/

class HolaMundo {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

Pedro Chavez Lugo Programacion en Java

Page 17: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Programacion Orientada a Objetos (POO)

POO

La programacion orientada a objetos (POO) es una etapa mas en laevolucion natural del desarrollo de sofware. La POO combina practi-cas probadas a lo largo del tiempo la forma mas eficiente posible.

OO

La orientacion a objetos (OO) es un concepto que abarca cualquiertipo de desarrollo basado en la idea de objeto, una entidad que poseeestados y comportamiento.

Pedro Chavez Lugo Programacion en Java

Page 18: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Programacion Orientada a Objetos (POO)

Pilares de la POO

- Clases.

- Objetos.

- Metodos.

- Polimorfismo.

- Encapsulacion.

- Herencia.

Pedro Chavez Lugo Programacion en Java

Page 19: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

POO con Java

Lenguaje Java

- Los programas son construidos en clases.

- Una clase es un modelo de objetos.

- Un Objeto es una instancia de una clase.

Lenguaje Java

El lenguaje Java permite escribir programas en terminos de POO yen terminos de la programacion estructurada.

Pedro Chavez Lugo Programacion en Java

Page 20: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Tipos de dato primitivos

Java define ocho tipos primitivos, clasificados en cuatro grupos:Enteros(numeros enterospositivos y negativos):

- byte 8-bit (signo).

- short 16-bit (signo).

- int 32-bit (signo).

- long 64-bit (signo).

Pedro Chavez Lugo Programacion en Java

Page 21: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Tipos de dato primitivos

Java define ocho tipos primitivos, clasificados en cuatro grupos:Enteros(numeros enterospositivos y negativos):

- byte 8-bit (signo).

- short 16-bit (signo).

- int 32-bit (signo).

- long 64-bit (signo).

Caracteres(Sımbolos como letras ynumeros):

- char 16-bit Unicode.

Pedro Chavez Lugo Programacion en Java

Page 22: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Tipos de dato primitivos

Java define ocho tipos primitivos, clasificados en cuatro grupos:Enteros(numeros enterospositivos y negativos):

- byte 8-bit (signo).

- short 16-bit (signo).

- int 32-bit (signo).

- long 64-bit (signo).

Caracteres(Sımbolos como letras ynumeros):

- char 16-bit Unicode.

Presicion fraccional(Numeros con puntodecimal):

- float32-bit IEEE 754-1985.

- double64-bit IEEE 754-1985.

Pedro Chavez Lugo Programacion en Java

Page 23: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Tipos de dato primitivos

Java define ocho tipos primitivos, clasificados en cuatro grupos:Enteros(numeros enterospositivos y negativos):

- byte 8-bit (signo).

- short 16-bit (signo).

- int 32-bit (signo).

- long 64-bit (signo).

Caracteres(Sımbolos como letras ynumeros):

- char 16-bit Unicode.

Presicion fraccional(Numeros con puntodecimal):

- float32-bit IEEE 754-1985.

- double64-bit IEEE 754-1985.

Booleano(Valores logicos):

- booleanverdadero (true) o falso (false).

Pedro Chavez Lugo Programacion en Java

Page 24: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Enteros

Especificacion

Nombre Tamano Rango

byte 8 -128 a +127short 16 -32,768 a +32,767int 32 -2,147,483,648 a +2,147,483,647long 64 -9,223,372,036,854,775,808 a

+9,223,372,036,854,775,807

Pedro Chavez Lugo Programacion en Java

Page 25: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Enteros

Especificacion

Nombre Tamano Rango

byte 8 -128 a +127short 16 -32,768 a +32,767int 32 -2,147,483,648 a +2,147,483,647long 64 -9,223,372,036,854,775,808 a

+9,223,372,036,854,775,807

Declaracionbyte short int longbyte a,b; short c,d; int e,f; long g,hbyte a=-128,b=127; short c=34,d=-62; int e=-3256,f=678; long g=12,h=-45

int e=032 (octal)int f=0x1a (hexadecimal)

Pedro Chavez Lugo Programacion en Java

Page 26: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Presicion fraccional

Especificacion

Nombre Tamano Rango

float 32 -1.4e-45 a +3.4e+38double 64 -4.9e-324 a +1.8e+308

Pedro Chavez Lugo Programacion en Java

Page 27: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Presicion fraccional

Especificacion

Nombre Tamano Rango

float 32 -1.4e-45 a +3.4e+38double 64 -4.9e-324 a +1.8e+308

Declaracionfloat doublefloat a,b; double c,d;

float a=-3.1416f,b=3.1416f; double c=-3.5e-12 (-3.5x10−12),d=3.5e+12 (3.5x10+12);

Pedro Chavez Lugo Programacion en Java

Page 28: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Presicion fraccional

Especificacion

Nombre Tamano Rango

float 32 -1.4e-45 a +3.4e+38double 64 -4.9e-324 a +1.8e+308

Declaracionfloat doublefloat a,b; double c,d;

float a=-3.1416f,b=3.1416f; double c=-3.5e-12 (-3.5x10−12),d=3.5e+12 (3.5x10+12);

El tipo de dato float nunca debe ser utilizado en el manejo de dinero, para esto

se recomienda emplear double.

Pedro Chavez Lugo Programacion en Java

Page 29: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Caracteres

Especificacion

Nombre Tamano Rango

char 16 \u0000 (0) a \uffff (65535)

Pedro Chavez Lugo Programacion en Java

Page 30: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Caracteres

Especificacion

Nombre Tamano Rango

char 16 \u0000 (0) a \uffff (65535)

Declaracion

char

char a,b,c; char a=’a’, b=’\u0040’(@), c=64 (@);

Pedro Chavez Lugo Programacion en Java

Page 31: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Caracteres

Especificacion

Nombre Tamano Rango

char 16 \u0000 (0) a \uffff (65535)

Declaracion

char

char a,b,c; char a=’a’, b=’\u0040’(@), c=64 (@);

El estandar Unicode es un estandar de codificacion de caracteres que intenta fa-

cilitar la transmision y visualizacion de textos de multiples lenguajes y disciplinas

tecnicas.

Pedro Chavez Lugo Programacion en Java

Page 32: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Boolean

Especificacion

Nombre Tamano Rango

boolean 1 true (verdadero) o false (falso)

Pedro Chavez Lugo Programacion en Java

Page 33: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Boolean

Especificacion

Nombre Tamano Rango

boolean 1 true (verdadero) o false (falso)

Declaracion

boolean

boolean a,b; boolean a=true, b=false;int f=20;boolean g = f>10 (true);

Pedro Chavez Lugo Programacion en Java

Page 34: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

class datos{

public static void main(String args[])

{

byte a=127, b=-128;

long c=1;

float d=-3.1416f, e=3.1416f;

double f=1e3, g=3.320202020200200202;

char h=’a’, i=’\u0040’,j=64;

boolean k=true, l=a>0;

System.out.println("byte a = "+a+" b = "+b);

System.out.println("long c = "+c);

System.out.println("float d = "+d+" e = "+e);

System.out.println("double f = "+f+" g = "+g);

System.out.println("char h = "+h+" i = "+i+" j = "+j);

System.out.println("boolean k = "+k+" l = "+l);

} Pedro Chavez Lugo Programacion en Java

Page 35: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion de tipos

En la programacion algunas veces es necesario asignar un valor deun tipo a una variable de otro tipo. Si los dos tipos son compatibles,Java realiza la conversion automatica o implıcita.

Conversion de tipos

Sin embargo, no todos los tipos son compatibles, y, por tanto, nocualquier conversion esta permitida. Para esto existe la conversionexplıcita o cast, que permite obtener una coversion entre tipos.

Pedro Chavez Lugo Programacion en Java

Page 36: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Conversion de tipos

Perdida de presicion

La lınea solida denota conversiones sin perdida de presicion y la lıneapunteada denota conversiones con perdida de presicion.

Pedro Chavez Lugo Programacion en Java

Page 37: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion automatica

Una conversion automatica de tipos es realizada si se cumplen lassiguientes condiciones:

Pedro Chavez Lugo Programacion en Java

Page 38: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion automatica

Una conversion automatica de tipos es realizada si se cumplen lassiguientes condiciones:

- Los tipos son compatibles.

- El tipo destino es mas grande que el tipo fuente(ensanchamiento).

Pedro Chavez Lugo Programacion en Java

Page 39: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion automatica

Una conversion automatica de tipos es realizada si se cumplen lassiguientes condiciones:

- Los tipos son compatibles.

- El tipo destino es mas grande que el tipo fuente(ensanchamiento).

Por ejemplo, el tipo int siempre es compatible y lo suficientementeamplio para almacenar todos los valores del tipo byte y short.

Pedro Chavez Lugo Programacion en Java

Page 40: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion automatica

Una conversion automatica de tipos es realizada si se cumplen lassiguientes condiciones:

- Los tipos son compatibles.

- El tipo destino es mas grande que el tipo fuente(ensanchamiento).

Por ejemplo, el tipo int siempre es compatible y lo suficientementeamplio para almacenar todos los valores del tipo byte y short. Sinembargo, los tipos numericos y el caracter no son compatibles conel tipo boolean.

Pedro Chavez Lugo Programacion en Java

Page 41: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion explıcita

Para realizar una conversion entre dos tipos incompatibles, se debeusar un cast. Un cast es simplemente una conversion de tipos ex-plıcita (estrechamiento), y tiene la siguiente forma generica:

Pedro Chavez Lugo Programacion en Java

Page 42: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion explıcita

Para realizar una conversion entre dos tipos incompatibles, se debeusar un cast. Un cast es simplemente una conversion de tipos ex-plıcita (estrechamiento), y tiene la siguiente forma generica:

- (tipo) valor.

Pedro Chavez Lugo Programacion en Java

Page 43: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion explıcita

Para realizar una conversion entre dos tipos incompatibles, se debeusar un cast. Un cast es simplemente una conversion de tipos ex-plıcita (estrechamiento), y tiene la siguiente forma generica:

- (tipo) valor.

Donde tipo especifica al tipo que se desea convertir el valorespecificado.

Pedro Chavez Lugo Programacion en Java

Page 44: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Conversion explıcita

Para realizar una conversion entre dos tipos incompatibles, se debeusar un cast. Un cast es simplemente una conversion de tipos ex-plıcita (estrechamiento), y tiene la siguiente forma generica:

- (tipo) valor.

Donde tipo especifica al tipo que se desea convertir el valorespecificado. Una conversion diferente es la que tiene lugar cuandose asigna un valor de punto flotante a un tipo entero, para lo cualse trunca la parte fraccionaria.int a;byte b;b = (byte) a;

Pedro Chavez Lugo Programacion en Java

Page 45: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Comentarios

Existen tres tipos de comentarios definidos por Java:

Pedro Chavez Lugo Programacion en Java

Page 46: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Lenguaje Java

Comentarios

Existen tres tipos de comentarios definidos por Java:

- Comentario de una sola lınea (//).

- Comentario de multiples lıneas (/* */).

- Comentario de documentacion (/** */ y etiquetas).

Pedro Chavez Lugo Programacion en Java

Page 47: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Operadores

Aritmeticos

Operador Significado

+ Adicion- Sustraccion* Multiplicacion/ Division% Modulo

- La division entera entrecero es una excepcion.

- La division puntoflotante entre cerogenera infinito o NAN(Not A Number).

Abreviacion de operadores aritmeticos y el operador asignacion:Expresion Equivalenciax+=4 x=x+4x-=4 x=x-4x*=4 x=x*4

Expresion Equivalenciax/=4 x=x/4x%=4 x=x%4

Pedro Chavez Lugo Programacion en Java

Page 48: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Operadores

Auto Incremento ydecremento

Operador Significado

++ Adiciona 1- - Sustrae 1

Postfijo y Prefijo:

n++, n- - (autoincremento ydecremento postfijo).post-incremento

++n, - -n (autoincremento ydecremento prefijo).pre-incremento

int m=7;int n=7;int a = 2 * ++m; (a es 16 y m es 8)

int b = 2 * n++; (b es 14 y n es 8)

Pedro Chavez Lugo Programacion en Java

Page 49: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Operadores

Relacionales

Operador Significado= = Igual que!= Diferente<,<= menor que y

menor o igual que>,>= mayor que y

mayor o igual que

Booleanos

Operador Significado&& Operacion AND|| Operacion OR& AND cortocircuito| OR cortocircuito! Operacion NOT

Pedro Chavez Lugo Programacion en Java

Page 50: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Parentesis

Cuando escriba una expresion que contenga muchos operadores, debe con-firmar que las operaciones en la expresion se realicen en el orden esperado.

Pedro Chavez Lugo Programacion en Java

Page 51: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Parentesis

Cuando escriba una expresion que contenga muchos operadores, debe con-firmar que las operaciones en la expresion se realicen en el orden esperado.Si no se esta seguro del orden de evaluacion en una expresion compleja, serecomienda utilizar parentesis para forzar el orden de evaluacion.

Pedro Chavez Lugo Programacion en Java

Page 52: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Parentesis

Cuando escriba una expresion que contenga muchos operadores, debe con-firmar que las operaciones en la expresion se realicen en el orden esperado.Si no se esta seguro del orden de evaluacion en una expresion compleja, serecomienda utilizar parentesis para forzar el orden de evaluacion.

AsociatividadOperadores Asociatividad*, /,% izquierda a derecha+, - izquierda a derecha<,<=, >,>= izquierda a derecha==, != izquierda a derecha= derecha a izquierda

Pedro Chavez Lugo Programacion en Java

Page 53: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Parentesis

Cuando escriba una expresion que contenga muchos operadores, debe con-firmar que las operaciones en la expresion se realicen en el orden esperado.Si no se esta seguro del orden de evaluacion en una expresion compleja, serecomienda utilizar parentesis para forzar el orden de evaluacion.

AsociatividadOperadores Asociatividad*, /,% izquierda a derecha+, - izquierda a derecha<,<=, >,>= izquierda a derecha==, != izquierda a derecha= derecha a izquierda

b = a*c a < bx = c+d/a-f d != z

Pedro Chavez Lugo Programacion en Java

Page 54: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Parentesis

Cuando escriba una expresion que contenga muchos operadores, debe con-firmar que las operaciones en la expresion se realicen en el orden esperado.Si no se esta seguro del orden de evaluacion en una expresion compleja, serecomienda utilizar parentesis para forzar el orden de evaluacion.

AsociatividadOperadores Asociatividad*, /,% izquierda a derecha+, - izquierda a derecha<,<=, >,>= izquierda a derecha==, != izquierda a derecha= derecha a izquierda

b = a*c a < bx = c+d/a-f d != z

x = (c+d)/(a-f)x = c+(d/a)-f

Pedro Chavez Lugo Programacion en Java

Page 55: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Precedencia

Precedenciamas alta()++ - - !* / %+ -> >= < <== = !=&&||=

Pedro Chavez Lugo Programacion en Java

Page 56: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Precedencia

Precedenciamas alta()++ - - !* / %+ -> >= < <== = !=&&||=

int a,b=6,c=8,d=2,e=4;a = b+c*d/e-d %2;

Pedro Chavez Lugo Programacion en Java

Page 57: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Parentesis, precedencia y asociatividad de operadores

Precedencia

Precedenciamas alta()++ - - !* / %+ -> >= < <== = !=&&||=

int a,b=6,c=8,d=2,e=4;a = b+c*d/e-d %2;boolean i;i = (a < b) && (c > d) || (e >= 4);

Pedro Chavez Lugo Programacion en Java

Page 58: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Operadores a nivel de bit

Java define varios operadores a nivel de bit que se pueden aplicar a los tiposenteros, byte, short, int, long y char.

Op Significado

˜ NOT a nivel de bit& AND a nivel de bit| OR a nivel de bit>> Desp. der. (valor >> num)<< Desp. izq. (valor << num)

Operador Significado

&= AND y asignacion|= OR y asignacion>>= Desp. der. y asignacion<<= Desp. der. y asignaciona>>=2 a<<=2

Pedro Chavez Lugo Programacion en Java

Page 59: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Operadores a nivel de bit

Java define varios operadores a nivel de bit que se pueden aplicar a los tiposenteros, byte, short, int, long y char.

Op Significado

˜ NOT a nivel de bit& AND a nivel de bit| OR a nivel de bit>> Desp. der. (valor >> num)<< Desp. izq. (valor << num)

Operador Significado

&= AND y asignacion|= OR y asignacion>>= Desp. der. y asignacion<<= Desp. der. y asignaciona>>=2 a<<=2

a=1, b=˜a b = -2a=7,b=3 c=a&b=3a=7,b=3 c=a|b=7

a=16 b = a>>1 = 8a=16 b = a<<1 = 32

Pedro Chavez Lugo Programacion en Java

Page 60: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Sentencias de control

Un lenguaje de programacion utiliza sentencias de control para hacer que elflujo de ejecucion avance o se bifurque en funcion de los cambios de estado enel programa. Las sentencias de control se clasifican en los grupos:

- Seleccion.

- Iteracion.

- Salto.

Pedro Chavez Lugo Programacion en Java

Page 61: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Sentencias de seleccion

Java admite dos sentencias de seleccion: if y switch. Estas sentencias controlanel flujo de ejecucion en funcion de condiciones conocidas durante el tiempo deejecucion.

if

La sentencia if es una sentencia de bifurcacion condicional, para dirigir el flujode ejecucion hacia dos caminos diferentes. Sintaxis:

if(condicion)sentencia1;else sentencia2;

La condicion es cualquierexpresion que devuelva un valorbooleano y la clausula else esopcional.

Pedro Chavez Lugo Programacion en Java

Page 62: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Sentencias de seleccion

if anidados

Un if anidado es una sentencia if que esta dentro de otro if o else.

i f ( i == 10){i f ( j < 20) a = b ;i f ( k > 100) c = d ;e l s e a = c ;} e l s e a = d ;

Pedro Chavez Lugo Programacion en Java

Page 63: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Sentencias de seleccion

if-else-if multiples

Una construccion if-else-if se basa en una secuencia de if anidados. Su formatoes el siguiente:if(condicion)sentencia;else if(condicion)sentencia;else if(condicion)sentencia;...

else sentencia;

Pedro Chavez Lugo Programacion en Java

Page 64: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Operador ternario

Operador ?

Java incluye un operador ternario que puede sustituir a ciertos tipos de if-else.Este operador es ?, sintaxis:expresion1? expresion2: expresion3 ;

expresion1 puede ser cualquier expresion que de como resultado un valor tipo

boolean. Si expresion1 genera como resultado true, entonces se evalua

expresion2, en caso contrario se evalua expresion3. Es necesario que expresion2

y expresion3 devuelvan el mismo tipo que no puede ser void.

Pedro Chavez Lugo Programacion en Java

Page 65: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Sentencias de seleccion

switch

La sentencia switch es una sentencia de bifurcacion multiple, con el siguienteformato general:switch(expresion){

case valor1 :sentenciasbreak;

case valor2 :sentenciasbreak;

case valorN:sentenciasbreak;

default:

}Pedro Chavez Lugo Programacion en Java

Page 66: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Sentencias de iteracion

while, do-while, for

Las sentencias while, do-while y for permiten crear lo que comunmente sedenominan ciclos.

while

while(condicion){cuerpo

}

do-while

do{cuerpo

}while(condicion);

for

for(inicializacion; condicion; iteracion){cuerpo

}

Pedro Chavez Lugo Programacion en Java

Page 67: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Sentencias de salto

break, continue, return

Las sentencias break, continue y return transfieren el flujo de ejecucion a otraparte del programa.

break

Finalizar a switch

Finalizar un ciclo.

continue

La sentencia continue forzaen un ciclo la ejecucion deuna nueva iteraciondescartando elprocesamiento de laiteracion actual.

return

return se utiliza para salir explıcitamente de un metodo, es decir hace que elcontrol de flujo se vuelva al metodo llamante.

Pedro Chavez Lugo Programacion en Java

Page 68: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Arreglos

Un arreglo es un conjunto de datos homogeneo, finito y ordenado.Los arreglos pueden tener una dimension igual a uno(unidimensional) o mayor (multidimensional). Para acceder a unelemento del arreglo se utiliza un ındice. Los arreglos en Java sonobjetos.

72 −896 0 1543 0−45a

a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[8]Identificadoro nombredel arreglo

Indice o subindicedel elementoen el arreglo

62

Valor asociadoal elementodel arreglo

Longitud del arreglo

Pedro Chavez Lugo Programacion en Java

Page 69: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Arreglos

Arreglo unidimensional

Un arreglo unidimensional es esencialmente una lista de variables del mismotipo.

Declaracion

tipo nombre[];

intdias del mes[];(null)

nombre = newtipo[tamano];

dias del mes = newint[12];

int dias del mes[] = new int [12];

int [] dias del mes = new int [12];

Pedro Chavez Lugo Programacion en Java

Page 70: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Arreglos

Arreglos Multidimensional

Los arreglos multidimensionales tienen asociado mas de un ındice.

Declaracion

int dias del mes[][];

int dias del mes[][][];

Pedro Chavez Lugo Programacion en Java

Page 71: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Objeto

Definicion

Pieza fundamental de la tecnologıa orientada a objetos.

Ejemplos: bicicleta, escritorio, automovil, etc.

En el mundo real los objetos comparten dos caracterısticas: estado ycomportamiento.Ası, por ejemplo un automovil tiene como estado un color, modelo, numero depuertas y de comportamiento se tiene apagado, encendido, acelerando,frenando.

Pedro Chavez Lugo Programacion en Java

Page 72: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Objetos

Estado y comportamiento

Estado - datos.

Comportamiento - metodos de instancia (procedimientos).

En la POO un objeto es una entidad que encapsula datos y metodos. Unobjeto corresponde a un tipo de dato definido por una clase.

Pedro Chavez Lugo Programacion en Java

Page 73: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Clase

Definicion

Una clase corresponde a un modelo de un objeto y un objeto corresponde auna instancia de una clase.

Caracterısticas

Define un tipo de dato.

identificador class

Pedro Chavez Lugo Programacion en Java

Page 74: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Clase

Forma general

class nombre de clase {tipo variable de instancia1 ;tipo variable de instancia2 ;//...tipo variable de instanciaN;

metodo constructor1(parametros){//cuerpo del metodo}//...metodo constructorN(parametros){//cuerpo del metodo}

tipo nombre de metodo1(parametros){//cuerpo del metodo}

tipo nombre de metodoN(parametros){//cuerpo del metodo}

}

Pedro Chavez Lugo Programacion en Java

Page 75: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Clase

Clase y objeto

class Caja {double ancho;double alto;double largo;

}Para crear un objeto se utiliza al operador new, que asigna memoriadinamicamente al objeto y devuelve la referencia al mismo.Caja micaja = new Caja();oCaja micaja;micaja = new Caja();

Pedro Chavez Lugo Programacion en Java

Page 76: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Metodo constructor

Constructor

Un metodo constructor inicializa las variables (datos) de un objeto. Este tieneel mismo nombre de la clase. Los metodos constructores no devuelven ningunvalor, ni siquiera void.

Pedro Chavez Lugo Programacion en Java

Page 77: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Metodos

En Java es posible definir dos o mas metodos que compartan el mismo nombre,dentro de la misma clase siempre y cuando la declaracion de sus parametros seadiferente. Cuando se produce esta situacion se dice que los metodos estansobrecargados, y que el proceso es llamado sobrecarga de metodos(polimorfismo).Ademas de sobrecargar metodos normales, tambien se pueden sobrecargar losmetodos constructores.

Pedro Chavez Lugo Programacion en Java

Page 78: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Control de acceso

Encapsulacion

La encapsulacion relaciona datos y codigo que opera sobre los mismos, peroademas, la encapsulacion proporciona otro atributo importante: control deacceso. El control de acceso de la encapsulacion permite controlar el acceso alos miembros de una clase desde las diferentes partes de un programa, paraimpedir un mal uso de los mismos.

Identificadores

public

private

Pedro Chavez Lugo Programacion en Java

Page 79: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Control de acceso

public

Cuando se aplica a un miembro de una clase el especificador public, entoncespuede tener acceso a ese miembro cualquier miembro de cualquier clase.

Pedro Chavez Lugo Programacion en Java

Page 80: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Control de acceso

private

Cuando se aplica a un miembro de una clase el especificador private, entoncessolo pueden tener acceso a ese miembro los miembros de su clase.

Pedro Chavez Lugo Programacion en Java

Page 81: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Clase String

Cadena de caracteres

La clase String permite crear objetos del tipo cadena de caracteres, la cual seespecifica entre comillas dobles. Esta clase define varios metodos constructores:String()String(String)-etcMetodos de instancia:char CharAt(int index), int CompareTo(String), String concat(String), intlength(), String replace (char oldchar, char newchar), String toLowerCase(),String toUpperCase().

Pedro Chavez Lugo Programacion en Java

Page 82: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Clase Math

Metodos para operaciones numericas

La clase Math tiene una coleccion de metodos estaticos para realizaroperaciones numericas:double abs(double), int abs(int), double max(double, double), int max(int,int),int min(int, int), double min(double,double), double random(), doublesqrt(double), etc.

Pedro Chavez Lugo Programacion en Java

Page 83: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Herencia

Pieza fundamental de la POO

Una clase puede ser heredada por otra clase.

La clase heredada se denomina superclase y la clase que hereda subclase.

La palabra reservada extends es utiliza para especificar que una clase heredaotra clase.

Pedro Chavez Lugo Programacion en Java

Page 84: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Excepciones

Manejo de errores

Java ofrece un mecanismo para la gestion de excepciones. Una excepcion esuna condicion anormal que surge en una secuencia de codigo en tiempo deejecucion (error en tiempo de ejecucion).La excepciones pueden ser tratadas mediante las instrucciones try y catch. Lasexcepciones evitan que un programa deje de ejecutarse cuando se presenta unerror.

Pedro Chavez Lugo Programacion en Java

Page 85: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Tipos de excepciones

Manejo de errores

Java define varios tipos de excepciones:

ArithmethicException - Error aritmetico, ej. division entre cero.

ArrayIndexOutOfBoundsException - Indice de arreglo fuera de su lımite.

Pedro Chavez Lugo Programacion en Java

Page 86: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 1. Buscar en el disco duro al archivo javac.exe.La finalidad es obtener el directorio del jdk.

Pedro Chavez Lugo Programacion en Java

Page 87: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 2. Ejecutar el interprete de comandos (shell) de windows.

Pedro Chavez Lugo Programacion en Java

Page 88: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 3. Ejecutar el comando cmd con .. y enter.

Pedro Chavez Lugo Programacion en Java

Page 89: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 4. Ejecutar el comando cmd con .. y enter.La finalidad es ubicarse en la raız de unidad C.

Pedro Chavez Lugo Programacion en Java

Page 90: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Pedro Chavez Lugo Programacion en Java

Page 91: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 5. Ejecutar el comando cmd con el nombre del directorio quecontiene al directorio java y enter.

Pedro Chavez Lugo Programacion en Java

Page 92: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 6. Ejecutar el comando cmd con el nombre del directorio java yenter.

Pedro Chavez Lugo Programacion en Java

Page 93: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 7. Ejecutar el comando cmd con el nombre del directorio jdk(presionar tecla Tab) y enter.

Pedro Chavez Lugo Programacion en Java

Page 94: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 8. Ejecutar el comando cmd con el nombre del directorio bin y enter.

Pedro Chavez Lugo Programacion en Java

Page 95: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 9. Los codigos de Java debe ser guardados en el directorio quecontiene al archivo javac.exe obtenido en el paso 1.

Pedro Chavez Lugo Programacion en Java

Page 96: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

hola.java

Pedro Chavez Lugo Programacion en Java

Page 97: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 10. Compilar con el programa javac.exe el archivo hola.java.

Pedro Chavez Lugo Programacion en Java

Page 98: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Esto genera un archivo de nombre y extension hola.class (bytecode).

Pedro Chavez Lugo Programacion en Java

Page 99: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Compilacion y ejecucion de codigo Java en Windows

Paso 11. Ejecutar con el programa java.exe el archivo hola.class.

Pedro Chavez Lugo Programacion en Java

Page 100: Programacio´n en Java - Universidad Michoacana de San ...lsc.fie.umich.mx/~pedro/mp/java.pdf · Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados

IntroduccionCompilacion e interpretacion

Programas de ejemploProgramacion Orientada a Objetos

Fundamentos del lenguaje Java

Muchas Gracias.

Pedro Chavez Lugo Programacion en Java