Download Programación en Java

Document related concepts
no text concepts found
Transcript
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Programación en Java
Pedro Chávez Lugo
mailto:[email protected]
30 de agosto de 2011
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
1
Introducción
2
Compilación e interpretación
3
Programas de ejemplo
4
Programación Orientada a Objetos
5
Fundamentos del lenguaje Java
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Historia de Java
El lenguaje de programación de Java fue desarrollado por Sun Microsystems en 1991. Nace de un proyecto de investigación para
desarrollar software para comunicación entre aparatos electrónicos
tales como tv’s, equipos de música, etc.
Problema del proyecto
El proyecto se enfrento al problema de manejar diferentes microprocesadores, lo cual implico emplear varios conjuntos de nemónicos.
Gracias a esto, el rumbo de la investigación cambio para producir un
nuevo lenguaje de programación idependientemente del procesador,
el cual fue bautizado como Oak.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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 investigación 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ón entre
dispositivos y abordaron el desarrollo de un lenguaje que permitiera
crear aplicaciones que se ejecutaran desde un navegador.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Applets de Java
Se empezó 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 página Web en cualquier computadora, independientemente de su sistema operativo y de la arquitectura de su
procesador.
Ejecución de un applet
Para ejecutar un applet sólo se necesita un navegador que soporte
la máquina virtual de Java (JVM).
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Tecnologı́a de Java
- Lenguaje de Programación.
- Plataforma.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje de programación Java
El lenguaje de programación Java es un lenguaje de alto nivel que
tiene asociado las caracterı́sticas:
- Simple.
- Dinámico.
- Orientado
a objetos.
- Seguro.
- Multihilos.
Pedro Chávez Lugo
- Arquitectura
neutra.
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Plataforma de software
Las plataformas de software pueden ser un sistema operativo, un
entorno de programación, o una combinación de ambos.
- Microsoft Windows.
- Unix.
- Linux.
- Solaris OS.
- Mac OS.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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:
- Máquina Virtual de Java (JVM).
- Interfaz de programación de aplicaciones (API).
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Introducción
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación
Un programa escrito en java debe ser compilado para obtener un
archivo en formato de bytecode, el cual corresponde a un código
intermedio que puede ser ejecutado en cualquier plataforma.
Interpretación
Un código en bytecode puede es ejecutado por el interprete que
corresponde a la máquina virtual de Java (JVM).
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación e interpretación
Interpretación
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Programas
Requisitos
- Java SE Development Kit (JDK).
- Editor de texto.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Programación Orientada a Objetos (POO)
POO
La programación orientada a objetos (POO) es una etapa más en la
evolución natural del desarrollo de sofware. La POO combina prácticas probadas a lo largo del tiempo la forma más eficiente posible.
OO
La orientación a objetos (OO) es un concepto que abarca cualquier
tipo de desarrollo basado en la idea de objeto, una entidad que posee
estados y comportamiento.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Programación Orientada a Objetos (POO)
Pilares de la POO
- Clases.
- Objetos.
- Métodos.
- Polimorfismo.
- Encapsulación.
- Herencia.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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 términos de POO y
en términos de la programación estructurada.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(números enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(números enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Caracteres
(Sı́mbolos como letras y
números):
- char
16-bit Unicode.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(números enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Presición fraccional
(Números con punto
decimal):
- float
32-bit IEEE 754-1985.
- double
64-bit IEEE 754-1985.
Caracteres
(Sı́mbolos como letras y
números):
- char
16-bit Unicode.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Tipos de dato primitivos
Java define ocho tipos primitivos, clasificados en cuatro grupos:
Enteros
(números enteros
positivos y negativos):
- byte
- short
- int
8-bit (signo).
16-bit (signo).
32-bit (signo).
- long
64-bit (signo).
Caracteres
(Sı́mbolos como letras y
números):
- char
16-bit Unicode.
Pedro Chávez Lugo
Presición fraccional
(Números con punto
decimal):
- float
32-bit IEEE 754-1985.
- double
64-bit IEEE 754-1985.
Booleano
(Valores lógicos):
- boolean
verdadero (true) o falso (false).
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Enteros
Especificación
Nombre
byte
short
int
long
Tamaño
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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Enteros
Especificación
Nombre
byte
short
int
long
Tamaño
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
Declaración
byte
byte a,b;
byte a=-128,b=127;
short
short c,d;
short c=34,d=-62;
Pedro Chávez Lugo
int
int
int
int
int
e,f;
e=-3256,f=678;
e=032 (octal)
f=0x1a (hexadecimal)
Programación en Java
long
long g,h
long g=12,h=-45
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Presición fraccional
Especificación
Nombre
float
double
Tamaño
32
64
Pedro Chávez Lugo
Rango
-1.4e-45 a +3.4e+38
-4.9e-324 a +1.8e+308
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Presición fraccional
Especificación
Nombre
float
double
Tamaño
32
64
Rango
-1.4e-45 a +3.4e+38
-4.9e-324 a +1.8e+308
Declaración
float
float a,b;
float a=-3.1416f,b=3.1416f;
double
double c,d;
double c=-3.5e-12 (-3.5x10−12 ),d=3.5e+12 (3.5x10+12 );
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Presición fraccional
Especificación
Nombre
float
double
Tamaño
32
64
Rango
-1.4e-45 a +3.4e+38
-4.9e-324 a +1.8e+308
Declaración
float
float a,b;
float a=-3.1416f,b=3.1416f;
double
double c,d;
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 Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Caracteres
Especificación
Nombre
char
Tamaño
16
Rango
\u0000 (0) a \uffff (65535)
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Caracteres
Especificación
Nombre
char
Tamaño
16
Rango
\u0000 (0) a \uffff (65535)
Declaración
char
char a,b,c;
char a=’a’, b=’\u0040’(@), c=64 (@);
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Caracteres
Especificación
Nombre
char
Tamaño
16
Rango
\u0000 (0) a \uffff (65535)
Declaración
char
char a,b,c;
char a=’a’, b=’\u0040’(@), c=64 (@);
El estándar Unicode es un estándar de codificación de caracteres que intenta facilitar la transmisión y visualización de textos de múltiples lenguajes y disciplinas
técnicas.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Boolean
Especificación
Nombre
boolean
Tamaño
1
Rango
true (verdadero) o false (falso)
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Boolean
Especificación
Nombre
boolean
Tamaño
1
Rango
true (verdadero) o false (falso)
Declaración
boolean
boolean a,b;
int f=20;
boolean g = f>10 (true);
Pedro Chávez Lugo
boolean a=true, b=false;
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión de tipos
En la programación 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 conversión automática o implı́cita.
Conversión de tipos
Sin embargo, no todos los tipos son compatibles, y, por tanto, no
cualquier conversión está permitida. Para esto existe la conversión
explı́cita o cast, que permite obtener una coversión entre tipos.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Conversión de tipos
Perdida de presición
La lı́nea solida denota conversiones sin perdida de presición y la lı́nea
punteada denota conversiones con perdida de presición.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión automática
Una conversión automática de tipos es realizada si se cumplen las
siguientes condiciones:
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión automática
Una conversión automática de tipos es realizada si se cumplen las
siguientes condiciones:
- Los tipos son compatibles.
- El tipo destino es más grande que el tipo fuente
(ensanchamiento).
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión automática
Una conversión automática de tipos es realizada si se cumplen las
siguientes condiciones:
- Los tipos son compatibles.
- El tipo destino es más 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión automática
Una conversión automática de tipos es realizada si se cumplen las
siguientes condiciones:
- Los tipos son compatibles.
- El tipo destino es más 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 numéricos y el carácter no son compatibles con
el tipo boolean.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión explı́cita
Para realizar una conversión entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica:
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión explı́cita
Para realizar una conversión entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica:
- (tipo) valor.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión explı́cita
Para realizar una conversión entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica:
- (tipo) valor.
Donde tipo especifica al tipo que se desea convertir el valor
especificado.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Conversión explı́cita
Para realizar una conversión entre dos tipos incompatibles, se debe
usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica:
- (tipo) valor.
Donde tipo especifica al tipo que se desea convertir el valor
especificado. Una conversión 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Lenguaje Java
Comentarios
Existen tres tipos de comentarios definidos por Java:
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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 múltiples lı́neas (/* */).
- Comentario de documentación (/** */ y etiquetas).
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Operadores
Aritméticos
Operador
+
*
/
%
Significado
Adición
Sustracción
Multiplicación
División
Modulo
- La división entera entre
cero es una excepción.
- La división punto
flotante entre cero
genera infinito o NAN
(Not A Number).
Abreviación de operadores aritméticos y el operador asignación:
Expresión Equivalencia
Expresión 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
n++, n- - (auto
incremento y
decremento postfijo).
post-incremento
++n, - -n (auto
incremento y
decremento prefijo).
pre-incremento
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
Operador
&&
||
&
|
!
Programación en Java
Significado
Operación AND
Operación OR
AND cortocircuito
OR cortocircuito
Operación NOT
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Paréntesis
Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Paréntesis
Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado.
Si no se esta seguro del orden de evaluación en una expresión compleja, se
recomienda utilizar paréntesis para forzar el orden de evaluación.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Paréntesis
Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado.
Si no se esta seguro del orden de evaluación en una expresión compleja, se
recomienda utilizar paréntesis para forzar el orden de evaluación.
Asociatividad
Operadores
*, /, %
+, <, <=, >, >=
==, !=
=
Asociatividad
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
derecha a izquierda
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Paréntesis
Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado.
Si no se esta seguro del orden de evaluación en una expresión compleja, se
recomienda utilizar paréntesis para forzar el orden de evaluación.
Asociatividad
Operadores
*, /, %
+, <, <=, >, >=
==, !=
=
Asociatividad
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
derecha a izquierda
Pedro Chávez Lugo
b = a*c
x = c+d/a-f
Programación en Java
a<b
d != z
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Paréntesis
Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado.
Si no se esta seguro del orden de evaluación en una expresión compleja, se
recomienda utilizar paréntesis para forzar el orden de evaluación.
Asociatividad
Operadores
*, /, %
+, <, <=, >, >=
==, !=
=
Asociatividad
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
derecha a izquierda
Pedro Chávez Lugo
b = a*c
x = c+d/a-f
x = (c+d)/(a-f)
x = c+(d/a)-f
Programación en Java
a<b
d != z
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Precedencia
Precedencia
más alta
()
++
*
+
>
==
&&
||
=
-/
>=
!=
!
%
<
Pedro Chávez Lugo
<=
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Precedencia
Precedencia
más alta
()
++
*
+
>
==
&&
||
=
-/
>=
!=
!
%
<
Pedro Chávez Lugo
int a,b=6,c=8,d=2,e=4;
a = b+c*d/e-d %2;
<=
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Paréntesis, precedencia y asociatividad de operadores
Precedencia
Precedencia
más alta
()
++
*
+
>
==
&&
||
=
-/
>=
!=
!
%
<
Pedro Chávez 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ón en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Operadores a nivel de bit
Java define varios operadores a nivel de bit que se pueden
enteros, byte, short, int, long y char.
Op
Significado
Operador
˜
NOT a nivel de bit
&=
&
AND a nivel de bit
|=
|
OR a nivel de bit
>>=
>> Desp. der. (valor >> num)
<<=
<< Desp. izq. (valor << num)
a>>=2
Pedro Chávez Lugo
Programación en Java
aplicar a los tipos
Significado
AND y asignación
OR y asignación
Desp. der. y asignación
Desp. der. y asignación
a<<=2
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Operadores a nivel de bit
Java define varios operadores a nivel de bit que se pueden
enteros, byte, short, int, long y char.
Op
Significado
Operador
˜
NOT a nivel de bit
&=
&
AND a nivel de bit
|=
|
OR a nivel de bit
>>=
>> Desp. der. (valor >> num)
<<=
<< Desp. izq. (valor << num)
a>>=2
a=1, b=˜a
a=7,b=3
a=7,b=3
b = -2
c=a&b=3
c=a|b=7
Pedro Chávez Lugo
a=16
a=16
aplicar a los tipos
Significado
AND y asignación
OR y asignación
Desp. der. y asignación
Desp. der. y asignación
a<<=2
b = a>>1 = 8
b = a<<1 = 32
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de control
Un lenguaje de programación utiliza sentencias de control para hacer que el
flujo de ejecución avance o se bifurque en función de los cambios de estado en
el programa. Las sentencias de control se clasifican en los grupos:
- Selección.
- Iteración.
- Salto.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de selección
Java admite dos sentencias de selección: if y switch. Estas sentencias controlan
el flujo de ejecución en función de condiciones conocidas durante el tiempo de
ejecución.
if
La sentencia if es una sentencia de bifurcación condicional, para dirigir el flujo
de ejecución hacia dos caminos diferentes. Sintaxis:
La condición es cualquier
if(condición)
expresión que devuelva un valor
sentencia1;
booleano y la cláusula else es
else sentencia2;
opcional.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de selección
if anidados
Un if anidado es una sentencia if que está 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de selección
if-else-if múltiples
Una construcción if-else-if se basa en una secuencia de if anidados. Su formato
es el siguiente:
if(condición)
sentencia;
else if(condición)
sentencia;
else if(condición)
sentencia;
.
.
.
else sentencia;
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ón1? expresión2: expresión3 ;
expresión1 puede ser cualquier expresión que dé como resultado un valor tipo
boolean. Si expresión1 genera como resultado true, entonces se evalúa
expresión2, en caso contrario se evalúa expresión3. Es necesario que expresión2
y expresión3 devuelvan el mismo tipo que no puede ser void.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de selección
switch
La sentencia switch es una sentencia de bifurcación múltiple, con el siguiente
formato general:
switch(expresión){
case valor1 :
sentencias
break;
case valor2 :
sentencias
break;
case valorN:
sentencias
break;
default:
}
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de iteración
while, do-while, for
Las sentencias while, do-while y for permiten crear lo que comunmente se
denominan ciclos.
while
do-while
while(condición){
cuerpo
}
do{
cuerpo
}while(condición);
for
for(inicialización; condición; iteración){
cuerpo
}
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Sentencias de salto
break, continue, return
Las sentencias break, continue y return transfieren el flujo de ejecución a otra
parte del programa.
continue
break
Finalizar a switch
Finalizar un ciclo.
La sentencia continue forza
en un ciclo la ejecución de
una nueva iteración
descartando el
procesamiento de la
iteración actual.
return
return se utiliza para salir explı́citamente de un método, es decir hace que el
control de flujo se vuelva al método llamante.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Arreglos
Un arreglo es un conjunto de datos homogéneo, finito y ordenado.
Los arreglos pueden tener una dimensión 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
6
0
72
1543 −89
0
62
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[8]
Longitud del arreglo
Pedro Chávez Lugo
Programación en Java
Indice o subindice
del elemento
en el arreglo
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Arreglos
Arreglo unidimensional
Un arreglo unidimensional es esencialmente una lista de variables del mismo
tipo.
Declaración
tipo nombre[];
int
dias del mes[];(null)
nombre = new
tipo[tamaño];
dias del mes = new
int[12];
int dias del mes[] = new int [12];
int [] dias del mes = new int [12];
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Arreglos
Arreglos Multidimensional
Los arreglos multidimensionales tienen asociado más de un ı́ndice.
Declaración
int dias del mes[][];
int dias del mes[][][];
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Objeto
Definición
Pieza fundamental de la tecnologı́a orientada a objetos.
Ejemplos: bicicleta, escritorio, automóvil, etc.
En el mundo real los objetos comparten dos caracterı́sticas: estado y
comportamiento.
Ası́, por ejemplo un automóvil tiene como estado un color, modelo, número de
puertas y de comportamiento se tiene apagado, encendido, acelerando,
frenando.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Objetos
Estado y comportamiento
Estado - datos.
Comportamiento - métodos de instancia (procedimientos).
En la POO un objeto es una entidad que encapsula datos y métodos. Un
objeto corresponde a un tipo de dato definido por una clase.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Clase
Definición
Una clase corresponde a un modelo de un objeto y un objeto corresponde a
una instancia de una clase.
Caracterı́sticas
Define un tipo de dato.
identificador class
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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;
método constructor1(parámetros){
//cuerpo del método
}
//...
método constructorN(parámetros){
//cuerpo del método
}
tipo nombre de método1(parámetros){
//cuerpo del método
}
tipo nombre de métodoN(parámetros){
//cuerpo del método
}
}
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ámicamente al objeto y devuelve la referencia al mismo.
Caja micaja = new Caja();
o
Caja micaja;
micaja = new Caja();
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Método constructor
Constructor
Un método constructor inicializa las variables (datos) de un objeto. Este tiene
el mismo nombre de la clase. Los métodos constructores no devuelven ningún
valor, ni siquiera void.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Métodos
En Java es posible definir dos o más métodos que compartan el mismo nombre,
dentro de la misma clase siempre y cuando la declaración de sus parámetros sea
diferente. Cuando se produce esta situación se dice que los métodos están
sobrecargados, y que el proceso es llamado sobrecarga de métodos
(polimorfismo).
Además de sobrecargar métodos normales, también se pueden sobrecargar los
métodos constructores.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Control de acceso
Encapsulación
La encapsulación relaciona datos y código que opera sobre los mismos, pero
además, la encapsulación proporciona otro atributo importante: control de
acceso. El control de acceso de la encapsulación 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ólo pueden tener acceso a ese miembro los miembros de su clase.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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 métodos constructores:
String()
String(String)
-etc
Métodos 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Clase Math
Métodos para operaciones numéricas
La clase Math tiene una colección de métodos estáticos para realizar
operaciones numéricas:
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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación 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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Excepciones
Manejo de errores
Java ofrece un mecanismo para la gestión de excepciones. Una excepción es
una condición anormal que surge en una secuencia de código en tiempo de
ejecución (error en tiempo de ejecución).
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ávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Tipos de excepciones
Manejo de errores
Java define varios tipos de excepciones:
ArithmethicException - Error aritmético, ej. división entre cero.
ArrayIndexOutOfBoundsException - Indice de arreglo fuera de su lı́mite.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 1. Búscar en el disco duro al archivo javac.exe.
La finalidad es obtener el directorio del jdk.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 2. Ejecutar el interprete de comandos (shell) de windows.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 3. Ejecutar el comando cmd con .. y enter.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 4. Ejecutar el comando cmd con .. y enter.
La finalidad es ubicarse en la raı́z de unidad C.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 5. Ejecutar el comando cmd con el nombre del directorio que
contiene al directorio java y enter.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 6. Ejecutar el comando cmd con el nombre del directorio java y
enter.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 7. Ejecutar el comando cmd con el nombre del directorio jdk
(presionar tecla Tab) y enter.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 8. Ejecutar el comando cmd con el nombre del directorio bin y enter.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 9. Los códigos de Java debe ser guardados en el directorio que
contiene al archivo javac.exe obtenido en el paso 1.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
hola.java
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 10. Compilar con el programa javac.exe el archivo hola.java.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Esto genera un archivo de nombre y extensión hola.class (bytecode).
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Compilación y ejecución de código Java en Windows
Paso 11. Ejecutar con el programa java.exe el archivo hola.class.
Pedro Chávez Lugo
Programación en Java
Introducción
Compilación e interpretación
Programas de ejemplo
Programación Orientada a Objetos
Fundamentos del lenguaje Java
Muchas Gracias.
Pedro Chávez Lugo
Programación en Java