Documentos de Académico
Documentos de Profesional
Documentos de Cultura
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Programacion en Java
Pedro Chavez Lugo
mailto:pchavezl74@gmail.com
30 de agosto de 2011
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Introduccion
Compilaci
on e interpretaci
on
Programas de ejemplo
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Historia de Java
El lenguaje de programacion de Java fue desarrollado por Sun Microsystems en 1991. Nace de un proyecto de investigacion para
desarrollar software para comunicaci
on entre aparatos electr
onicos
tales como tvs, equipos de m
usica, etc.
Problema del proyecto
El proyecto se enfrento al problema de manejar diferentes microonicos.
procesadores, lo cual implico emplear varios conjuntos de nem
Gracias a esto, el rumbo de la investigacion cambio para producir un
nuevo lenguaje de programacion idependientemente del procesador,
el cual fue bautizado como Oak.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Java en Internet
Los investigadores de Sun se dieron cuenta de que los logros alcanzados en su proyecto de investigacion eran perfectamente aplicados
en Internet, ya que se conforma por una red mundial de computadoras con diferentes sistemas operativos y diferentes arquitecturas
de procesadores.
Consecuencias
Los investigadores abandonaron al proyecto de comunicaci
on entre
dispositivos y abordaron el desarrollo de un lenguaje que permitiera
crear aplicaciones que se ejecutaran desde un navegador.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Applets de Java
Se empezo a hablar de Java y de sus aplicaciones conocidas como applets. Un applet es un programa en Java que se ejecuta en
el contexto de una pagina Web en cualquier computadora, independientemente de su sistema operativo y de la arquitectura de su
procesador.
Ejecuci
on de un applet
Para ejecutar un applet solo se necesita un navegador que soporte
la maquina virtual de Java (JVM).
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Tecnologa de Java
- Lenguaje de Programacion.
- Plataforma.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
- Dinamico.
- Orientado
a objetos.
- Seguro.
- Multihilos.
Pedro Ch
avez Lugo
- Arquitectura
neutra.
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Plataforma
Una plataforma consiste un ambiente formado de hardware o software en el cual se ejecutan programas.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Plataforma de hardware
Plataforma de hardware consiste de una arquitectura de procesador:
- alpha.
- arm.
- avr32.
- i386.
- h8300.
- m68k.
- m32r.
- powerpc.
- mips.
- sparc.
- ppc.
- sparc64.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Plataforma de software
Las plataformas de software pueden ser un sistema operativo, un
entorno de programacion, o una combinaci
on de ambos.
- Microsoft Windows.
- Unix.
- Linux.
- Solaris OS.
- Mac OS.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Plataforma de Java
La plataforma de Java se conforma solo por software, la cual se
ejecuta como una plataforma basada en hardware, la cual consiste
de:
- Maquina Virtual de Java (JVM).
- Interfaz de programacion de aplicaciones (API).
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Introduccion
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Compilaci
on
Un programa escrito en java debe ser compilado para obtener un
archivo en formato de bytecode, el cual corresponde a un codigo
intermedio que puede ser ejecutado en cualquier plataforma.
Interpretaci
on
Un codigo en bytecode puede es ejecutado por el interprete que
corresponde a la maquina virtual de Java (JVM).
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Compilacion e interpretacion
Interpretaci
on
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Programas
Requisitos
- Java SE Development Kit (JDK).
- Editor de texto.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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 Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(n
umeros enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(n
umeros enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Caracteres
(Smbolos como letras y
n
umeros):
- char
16-bit Unicode.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(n
umeros enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Presici
on fraccional
(N
umeros con punto
decimal):
- float
32-bit IEEE 754-1985.
- double
64-bit IEEE 754-1985.
Caracteres
(Smbolos como letras y
n
umeros):
- char
16-bit Unicode.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(n
umeros enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Caracteres
(Smbolos como letras y
n
umeros):
- char
16-bit Unicode.
Pedro Ch
avez Lugo
Presici
on fraccional
(N
umeros con punto
decimal):
- float
32-bit IEEE 754-1985.
- double
64-bit IEEE 754-1985.
Booleano
(Valores l
ogicos):
- boolean
verdadero (true) o falso (false).
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Enteros
Especificacion
Nombre
byte
short
int
long
Tama
no
8
16
32
64
Rango
-128 a +127
-32,768 a +32,767
-2,147,483,648 a +2,147,483,647
-9,223,372,036,854,775,808 a
+9,223,372,036,854,775,807
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Enteros
Especificacion
Nombre
byte
short
int
long
Tama
no
8
16
32
64
Rango
-128 a +127
-32,768 a +32,767
-2,147,483,648 a +2,147,483,647
-9,223,372,036,854,775,808 a
+9,223,372,036,854,775,807
Declaracion
byte
byte a,b;
byte a=-128,b=127;
short
short c,d;
short c=34,d=-62;
Pedro Ch
avez Lugo
int
int
int
int
int
e,f;
e=-3256,f=678;
e=032 (octal)
f=0x1a (hexadecimal)
Programaci
on en Java
long
long g,h
long g=12,h=-45
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Presicion fraccional
Especificacion
Nombre
float
double
Tama
no
32
64
Pedro Ch
avez Lugo
Rango
-1.4e-45 a +3.4e+38
-4.9e-324 a +1.8e+308
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Presicion fraccional
Especificacion
Nombre
float
double
Tama
no
32
64
Rango
-1.4e-45 a +3.4e+38
-4.9e-324 a +1.8e+308
Declaracion
float
float a,b;
float a=-3.1416f,b=3.1416f;
double
double c,d;
double c=-3.5e-12 (-3.5x1012 ),d=3.5e+12 (3.5x10+12 );
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Presicion fraccional
Especificacion
Nombre
float
double
Tama
no
32
64
Rango
-1.4e-45 a +3.4e+38
-4.9e-324 a +1.8e+308
Declaracion
float
float a,b;
float a=-3.1416f,b=3.1416f;
double
double c,d;
double c=-3.5e-12 (-3.5x1012 ),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 Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Caracteres
Especificacion
Nombre
char
Tama
no
16
Rango
\u0000 (0) a \uffff (65535)
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Caracteres
Especificacion
Nombre
char
Tama
no
16
Rango
\u0000 (0) a \uffff (65535)
Declaracion
char
char a,b,c;
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Caracteres
Especificacion
Nombre
char
Tama
no
16
Rango
\u0000 (0) a \uffff (65535)
Declaracion
char
char a,b,c;
El est
andar Unicode es un est
andar de codificaci
on de caracteres que intenta facilitar la transmisi
on y visualizaci
on de textos de m
ultiples lenguajes y disciplinas
tecnicas.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Boolean
Especificacion
Nombre
boolean
Tama
no
1
Rango
true (verdadero) o false (falso)
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Boolean
Especificacion
Nombre
boolean
Tama
no
1
Rango
true (verdadero) o false (falso)
Declaracion
boolean
boolean a,b;
int f=20;
boolean g = f>10 (true);
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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 Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion de tipos
En la programacion algunas veces es necesario asignar un valor de
un tipo a una variable de otro tipo. Si los dos tipos son compatibles,
Java realiza la conversion automatica o implcita.
Conversion de tipos
Sin embargo, no todos los tipos son compatibles, y, por tanto, no
cualquier conversion esta permitida. Para esto existe la conversion
explcita o cast, que permite obtener una coversi
on entre tipos.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Conversion de tipos
Perdida de presici
on
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion automatica
Una conversion automatica de tipos es realizada si se cumplen las
siguientes condiciones:
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion automatica
Una conversion automatica de tipos es realizada si se cumplen las
siguientes condiciones:
- Los tipos son compatibles.
- El tipo destino es mas grande que el tipo fuente
(ensanchamiento).
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion automatica
Una conversion automatica de tipos es realizada si se cumplen las
siguientes 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 suficientemente
amplio para almacenar todos los valores del tipo byte y short.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion automatica
Una conversion automatica de tipos es realizada si se cumplen las
siguientes 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 suficientemente
amplio para almacenar todos los valores del tipo byte y short. Sin
embargo, los tipos numericos y el caracter no son compatibles con
el tipo boolean.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion explcita
Para realizar una conversion entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversion de tipos explcita (estrechamiento), y tiene la siguiente forma generica:
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion explcita
Para realizar una conversion entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversion de tipos explcita (estrechamiento), y tiene la siguiente forma generica:
- (tipo) valor.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion explcita
Para realizar una conversion entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversion de tipos explcita (estrechamiento), y tiene la siguiente forma generica:
- (tipo) valor.
Donde tipo especifica al tipo que se desea convertir el valor
especificado.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversion explcita
Para realizar una conversion entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversion de tipos explcita (estrechamiento), y tiene la siguiente forma generica:
- (tipo) valor.
Donde tipo especifica al tipo que se desea convertir el valor
especificado. Una conversion diferente es la que tiene lugar cuando
se asigna un valor de punto flotante a un tipo entero, para lo cual
se trunca la parte fraccionaria.
int a;
byte b;
b = (byte) a;
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Comentarios
Existen tres tipos de comentarios definidos por Java:
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Comentarios
Existen tres tipos de comentarios definidos por Java:
- Comentario de una sola lnea (//).
- Comentario de m
ultiples lneas (/* */).
- Comentario de documentacion (/** */ y etiquetas).
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Operadores
Aritmeticos
Operador
+
*
/
%
Significado
Adici
on
Sustraccion
Multiplicaci
on
Division
Modulo
Abreviaci
on de operadores aritmeticos y el operador asignaci
on:
Expresi
on Equivalencia
Expresi
on Equivalencia
x+=4
x=x+4
x/=4
x=x/4
x-=4
x=x-4
x %=4
x=x %4
x*=4
x=x*4
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Operadores
Postfijo y Prefijo:
Auto Incremento y
decremento
Operador
++
-int
int
int
int
Significado
Adiciona 1
Sustrae 1
m=7;
n=7;
a = 2 * ++m; (a es 16 y m es 8)
b = 2 * n++; (b es 14 y n es 8)
Pedro Ch
avez Lugo
n++, n- - (auto
incremento y
decremento postfijo).
post-incremento
++n, - -n (auto
incremento y
decremento prefijo).
pre-incremento
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Operadores
Relacionales
Operador
==
!=
<, <=
>, >=
Booleanos
Significado
Igual que
Diferente
menor que y
menor o igual que
mayor que y
mayor o igual que
Pedro Ch
avez Lugo
Operador
&&
||
&
|
!
Programaci
on en Java
Significado
Operaci
on AND
Operaci
on OR
AND cortocircuito
OR cortocircuito
Operaci
on NOT
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Asociatividad
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
derecha a izquierda
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Asociatividad
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
derecha a izquierda
Pedro Ch
avez Lugo
b = a*c
x = c+d/a-f
Programaci
on en Java
a<b
d != z
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Asociatividad
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
derecha a izquierda
Pedro Ch
avez Lugo
b = a*c
x = c+d/a-f
x = (c+d)/(a-f)
x = c+(d/a)-f
Programaci
on en Java
a<b
d != z
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
-/
>=
!=
!
%
<
Pedro Ch
avez Lugo
<=
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
-/
>=
!=
!
%
<
Pedro Ch
avez Lugo
int a,b=6,c=8,d=2,e=4;
a = b+c*d/e-d %2;
<=
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
-/
>=
!=
!
%
<
Pedro Ch
avez Lugo
<=
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);
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
a=1, b=a
a=7,b=3
a=7,b=3
b = -2
c=a&b=3
c=a|b=7
Pedro Ch
avez Lugo
a=16
a=16
b = a>>1 = 8
b = a<<1 = 32
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de control
Un lenguaje de programaci
on utiliza sentencias de control para hacer que el
flujo de ejecuci
on avance o se bifurque en funci
on de los cambios de estado en
el programa. Las sentencias de control se clasifican en los grupos:
- Selecci
on.
- Iteraci
on.
- Salto.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de seleccion
Java admite dos sentencias de selecci
on: if y switch. Estas sentencias controlan
el flujo de ejecuci
on en funci
on de condiciones conocidas durante el tiempo de
ejecuci
on.
if
La sentencia if es una sentencia de bifurcaci
on condicional, para dirigir el flujo
de ejecuci
on hacia dos caminos diferentes. Sintaxis:
La condici
on es cualquier
if(condici
on)
expresi
on que devuelva un valor
sentencia1;
booleano y la cl
ausula else es
else sentencia2;
opcional.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de seleccion
if anidados
Un if anidado es una sentencia if que est
a dentro de otro if o else.
i f ( i == 1 0 ) {
i f ( j < 20) a = b ;
i f ( k > 100) c = d ;
else a = c ;
} else a = d ;
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de seleccion
if-else-if m
ultiples
Una construcci
on if-else-if se basa en una secuencia de if anidados. Su formato
es el siguiente:
if(condici
on)
sentencia;
else if(condici
on)
sentencia;
else if(condici
on)
sentencia;
.
.
.
else sentencia;
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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:
expresi
on1? expresi
on2: expresi
on3 ;
expresi
on1 puede ser cualquier expresi
on que de como resultado un valor tipo
boolean. Si expresi
on1 genera como resultado true, entonces se eval
ua
expresi
on2, en caso contrario se eval
ua expresi
on3. Es necesario que expresi
on2
y expresi
on3 devuelvan el mismo tipo que no puede ser void.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de seleccion
switch
La sentencia switch es una sentencia de bifurcaci
on m
ultiple, con el siguiente
formato general:
switch(expresi
on){
case valor1 :
sentencias
break;
case valor2 :
sentencias
break;
case valorN:
sentencias
break;
default:
}
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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 se
denominan ciclos.
while
do-while
while(condici
on){
cuerpo
}
do{
cuerpo
}while(condici
on);
for
for(inicializaci
on; condici
on; iteraci
on){
cuerpo
}
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de salto
break, continue, return
Las sentencias break, continue y return transfieren el flujo de ejecuci
on a otra
parte del programa.
continue
break
Finalizar a switch
Finalizar un ciclo.
return
return se utiliza para salir explcitamente de un metodo, es decir hace que el
control de flujo se vuelva al metodo llamante.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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 un
elemento del arreglo se utiliza un ndice. Los arreglos en Java son
objetos.
Valor asociado
al elemento
del arreglo
a
Identificador
o nombre
del arreglo
45
72
1543 89
62
Programaci
on en Java
Indice o subindice
del elemento
en el arreglo
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Arreglos
Arreglo unidimensional
Un arreglo unidimensional es esencialmente una lista de variables del mismo
tipo.
Declaraci
on
tipo nombre[];
int
dias del mes[];(null)
nombre = new
tipo[tama
no];
dias del mes = new
int[12];
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Arreglos
Arreglos Multidimensional
Los arreglos multidimensionales tienen asociado m
as de un ndice.
Declaraci
on
int dias del mes[][];
int dias del mes[][][];
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Objeto
Definici
on
Pieza fundamental de la tecnologa orientada a objetos.
Ejemplos: bicicleta, escritorio, autom
ovil, etc.
En el mundo real los objetos comparten dos caractersticas: estado y
comportamiento.
As, por ejemplo un autom
ovil tiene como estado un color, modelo, n
umero de
puertas y de comportamiento se tiene apagado, encendido, acelerando,
frenando.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Objetos
Estado y comportamiento
Estado - datos.
Comportamiento - metodos de instancia (procedimientos).
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Clase
Definici
on
Una clase corresponde a un modelo de un objeto y un objeto corresponde a
una instancia de una clase.
Caractersticas
Define un tipo de dato.
identificador class
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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;
ametros){
m
etodo constructor1(par
//cuerpo del m
etodo
}
//...
ametros){
m
etodo constructorN(par
//cuerpo del m
etodo
}
etodo1(par
ametros){
tipo nombre de m
//cuerpo del m
etodo
}
etodoN(par
ametros){
tipo nombre de m
//cuerpo del m
etodo
}
}
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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 memoria
din
amicamente al objeto y devuelve la referencia al mismo.
Caja micaja = new Caja();
o
Caja micaja;
micaja = new Caja();
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Metodo constructor
Constructor
Un metodo constructor inicializa las variables (datos) de un objeto. Este tiene
el mismo nombre de la clase. Los metodos constructores no devuelven ning
un
valor, ni siquiera void.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Metodos
En Java es posible definir dos o m
as metodos que compartan el mismo nombre,
dentro de la misma clase siempre y cuando la declaraci
on de sus par
ametros sea
diferente. Cuando se produce esta situaci
on se dice que los metodos est
an
sobrecargados, y que el proceso es llamado sobrecarga de metodos
(polimorfismo).
Adem
as de sobrecargar metodos normales, tambien se pueden sobrecargar los
metodos constructores.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Control de acceso
Encapsulaci
on
La encapsulaci
on relaciona datos y c
odigo que opera sobre los mismos, pero
adem
as, la encapsulaci
on proporciona otro atributo importante: control de
acceso. El control de acceso de la encapsulaci
on permite controlar el acceso a
los miembros de una clase desde las diferentes partes de un programa, para
impedir un mal uso de los mismos.
Identificadores
public
private
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Control de acceso
public
Cuando se aplica a un miembro de una clase el especificador public, entonces
puede tener acceso a ese miembro cualquier miembro de cualquier clase.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Control de acceso
private
Cuando se aplica a un miembro de una clase el especificador private, entonces
s
olo pueden tener acceso a ese miembro los miembros de su clase.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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 se
especifica entre comillas dobles. Esta clase define varios metodos constructores:
String()
String(String)
-etc
Metodos de instancia:
char CharAt(int index), int CompareTo(String), String concat(String), int
length(), String replace (char oldchar, char newchar), String toLowerCase(),
String toUpperCase().
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Clase Math
Metodos para operaciones numericas
La clase Math tiene una colecci
on de metodos est
aticos para realizar
operaciones 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(), double
sqrt(double), etc.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on 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 hereda
otra clase.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Excepciones
Manejo de errores
Java ofrece un mecanismo para la gesti
on de excepciones. Una excepci
on es
una condici
on anormal que surge en una secuencia de c
odigo en tiempo de
ejecuci
on (error en tiempo de ejecuci
on).
La excepciones pueden ser tratadas mediante las instrucciones try y catch. Las
excepciones evitan que un programa deje de ejecutarse cuando se presenta un
error.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Tipos de excepciones
Manejo de errores
Java define varios tipos de excepciones:
ArithmethicException - Error aritmetico, ej. divisi
on entre cero.
ArrayIndexOutOfBoundsException - Indice de arreglo fuera de su lmite.
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Pedro Ch
avez Lugo
Programaci
on en Java
Introducci
on
Compilaci
on e interpretaci
on
Programas de ejemplo
Programaci
on Orientada a Objetos
Fundamentos del lenguaje Java
Muchas Gracias.
Pedro Ch
avez Lugo
Programaci
on en Java