Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
mx
Lenguaje
JAVA
Ing. Patricia Del Valle Morales
pdelvallem@iingen.unam.mx
¿Que es un programa?
Un programa es un conjunto de instrucciones de computadora que actúan
sobre un conjunto de datos y generan como resultado información
M e m o r i a
0
B u s d e d a t o s
1
2
3
C P U
B u s d e d i r e c c i o n e s
D a t o s e i n s t r u c c i o n e s
C e l d a d e m e m o r i a
n - 2
n - 1
D i r e c c i o n e s
( n c e l d a s d e m e B m u os r d i a e ) c o n t r o l
Ejemplo:
Un programa
calculará el Información
promedio
de las calificaciones
de un alumno Datos
Programa: instrucciones a
ejecutar por el
procesador
4
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Clases vs Objetos
¿Qué es un objeto?
5
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Clases
class Nombre_de_la_clase {
atributos
……
Métodos (funciones)
…..
6
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Control de acceso
Cuando se crea una nueva clase en Java, se
puede especificar el nivel de acceso que se quiere
para las variables de instancia y los métodos
definidos en la clase:
public
public void CalculaPromedio() {
Control de acceso
protected
protected void SoloSubClases(){
}
Sólo las subclases de la clase y nadie más
puede acceder a las variables y métodos de
instancia protegidos.
private
private String RFCEmpleado;
Las variables y métodos de instancia privados
sólo pueden ser accedidos desde dentro de la
clase. No son accesibles desde las subclases.
8
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Estructura de un programa
class HolaMundo {
// Rutina principal
// todo programa siempre comienza en la función main
9
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
El cuerpo de la clase se
especifica dentro de las llaves
{ }.
10
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Comentarios:
11
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
12
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Sintaxis:
paquete.clase.método
System.out.println
13
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Compilar y ejecutar
HolaMundo.class …..código
ejecutable
14
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
2. Tipos de datos
Palabras reservadas
Las palabras especiales indican acciones o especificaciones dentro de un
programa.
16
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Tipo de constantes
Constantes enteras:
valores representados por un número entero (positivo o negativo), por
ejemplo: 3, -4, 1024, 00003, etc.
Obsérvese que los ceros a la izquierda del número no son significativos
17
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
18
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Constantes de cadenas de caracteres:
Las cadenas de caracteres se delimitan por medio de comillas dobles,
de ésta manera se evita que se confundan con palabras reservadas por
el lenguaje o por las variables definidas por el usuario.
Por ejemplo:
”Hola mundo”
”Dame un número”
” El promedio es: ”
.....
19
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Secuencias de escape
Para representar el salto de línea en la pantalla, un espacio de
tabulación, comillas, etc. C utiliza las denominadas secuencias de
escape.
Una secuencia de escape representa un caracter especial, comienza
siempre con la diagonal invertida ( \ ) seguida de una letra. La tabla
siguiente muestra las secuencias de escape utilizadas en C:
Nombre Completo Constante En C En ASCII
Sonido de alerta BEL \a 7
Nueva Línea NL o LF \n 10
Tabulador horizontal HT \t 9
Retroceso BS \b 8
Retorno de carro CR \r 13
Salto de página FF \f 12
Barra invertida \ \\ 92
Apóstrofo ’ \’ 39
Comillas ” \” 34
Carácter nulo NULL \0 0
20
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Declaración de constantes
Ejemplo:
21
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Nombres de variables
22
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Tipos de variables
Para representar un dato en la memoria de la computadora se debe elegir
el tipo de dato que la variable o variables contendrán.
23
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Declaración de variables
Sintaxis:
<tipo> <nombre> ;
o
<tipo> <nombre> = <valor>;
Ejemplo:
class CAritmetica {
public static void main(String[] args)
{
double a;
float b,c;
int x=10, y;
……
}
}
24
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Ejemplo:
class CLeedatos {
public static void main(String []args) {
double num1;
int num2;
String nombre;
num1= Teclado.Double("dame un numero: ");
num2= Teclado.entero("dame un numero entero: ");
nombre = Teclado.cadena ("nombre: ");
System.out.println("Los numeros tecleados fueron: " + num1
+ ", " + num2 );
25
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
4. Operadores y Expresiones
Un operador es un carácter o grupo de caracteres que actúa sobre una, dos o más
operandos (variables o constantes) para realizar una determinada operación, la cual
entrega un resultado.
1.Operadores Aritméticos
2.Operadores de Asignación
3.Operadores de incremento y decremento
4.Operadores Relacionales
5.Operadores Lógicos
6.Operadores Binarios
27
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Operadores Aritméticos
Estos operadores se pueden aplicar a constantes, variables y expresiones numéricas.
El resultado se obtiene de aplicar la operación correspondiente entre los dos
operandos numéricos.
Suma: +
Resta: -
Multiplicación: *
División: /
Residuo de una división entera: %
Las expresiones pueden contener paréntesis (...) que agrupan algunos de sus
términos. Puede haber paréntesis contenidos dentro de otros paréntesis. El significado
de los paréntesis coincide con el habitual en las expresiones matemáticas.
28
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Operadores de Asignación
Los operadores de asignación asignan un valor a una variable (es decir, copian
el valor a la zona de memoria correspondiente a dicha variable), este valor
puede ser el resultado de una expresión o el valor de otra variable
Sintaxis:
nombre_de_variable = expresion;
Ejemplos:
x=x+2;
y=a*b/(b*c);
29
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Existen otros operadores de asignación (+=, -=, *=, /=, &=, |=, ^=,
>>=, <<=) formados por los 4 operadores aritméticos seguidos por el
carácter de igualdad.
Operadores incrementales
Los operadores incrementales (++) y (--) son operadores unarios que incrementan o
decrementan en una unidad el valor de la variable a la que afectan. Estos operadores
pueden ir antes o después de la variable.
Ejemplos:
int i = 2, j = 2, m, n;
Es importante entender muy bien por qué los resultados m y n del ejemplo anterior son
diferentes.
31
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Operadores Relacionales
Estos operadores producen un resultado cierto o falso según se cumpla o no una
relación. Las posibles relaciones a consultar son:
Igual que: ==
Menor que: <
Mayor que: >
Menor o igual que: <=
Mayor o igual que: >=
Distinto que: !=
Todos los operadores relacionales son operadores binarios (tienen dos operandos).
Sintaxis:
expresion1 op expresion2
donde op es uno de los operadores (==, <, >, <=, >=, !=).
32
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Funcionamiento:
33
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Operadores lógicos
Los operadores lógicos son operadores binarios que permiten combinar los
resultados de los operadores relacionales, comprobando que se cumplen
simultáneamente varias condiciones, que se cumple una u otra, etc.
Sintaxis:
expresion1 || expresion2
expresion1 && expresion2
34
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Sintaxis:
!expresion
Este operador devuelve un cero (false) si se aplica a un valor distinto de cero (true),
y devuelve un valor distinto de cero (true) si se aplica a un valor cero (false).
Ejemplo:
!(1>2) // resultado distinto de cero, (cierto)
!((2==2) && (3>-1)) // el resultado es cero (falso)
35
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
36
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Los distintos operadores deJAVA se ordenan según precedencia o prioridad; para operadores de la misma
precedencia, en algunos el orden de ejecución es de izquierda a derecha, y otros de derecha a izquierda (es
decir se asocian de izda a dcha, o de dcha a izda). A este orden se le llama asociatividad.
long double > double > float > long > int > char
39
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Métodos
en
JAVA
40
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Métodos
Sintaxis:
Ejemplos:
public void MultiplicaOperandos(float op1, float op2) {
…….
}
41
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Accesibilidad de variables
class UnaClase
{
variables miembro de la clase
Variable limitada
a una clase
public void unMetodo(lista de parámetros)
{
variables locales
Variable limitada una sentencia compuesta
a un método {
variables locales
Variable limitada }
a un bloque }
}
42
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
class CGrados {
//Atributos
private float gradosC;
//métodos
public void AsignarGradosC (float gc){
//establecer el atributo gradosC (grados centigrados)
gradosC = gc;
}
public float ObtenerGradosC() {
//regresa el atributo gradosC
return gradosC;
}
public float CalculaGradosF () {
//calcula y regresa los grados Fahrenheir a partir de los grado
return (9f/5f * gradosC + 32);
}} 43
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
class Conversion {
//función principal
grados.AsignarGradosC(gcentigrados);
gfahrenheir = grados.CalculaGradosF();
Ejercicios:
Programa 1:
Escriba un programa que solicite 2
números y despliegue la suma de estos.
Programa2:
Escriba un programa que solicite el
nombre de un alumno, sus 3
calificaciones y despliegue los datos
capturados y el promedio.
45
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
46
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
47
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
this Y super
48
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
import MiClase;
public class MiNuevaClase extends MiClase {
public void Suma_a_i( int j ) {
i = i + ( j/2 );
super.Suma_a_i( j );
}
}
50
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
5. Estructuras de control
Bifurcaciones: sentencia if
La sentencia de control if permite ejecutar o no una sentencia simple o compuesta según se
cumpla o no una determinada condición.
Sintaxis:
sentencia simple: sentencia compuesta:
if ( expresion ) {
if ( expresion )
lista de sentencias
sentencia_simple;
}
línea_siguiente
línea_siguiente
Ejemplo:
public static void main(String []args)
{ int X = 10, y =0;
if (x) {
y = x+100;
x = x - 1;
System.out.println(“ y = “ + y + “, x= ” + x);
}
}
52
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Sintaxis:
con sentencia simple: con sentencia compuesta:
if ( expresion ) if ( expresion ) {
sentencia_1; lista_de_sentencias_1
else } else {
sentencia_2; lista_de_sentencias_2
}
Se evalúa la expresion:
53
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Ejemplo:
num =10;
if (num < 0 )
System.out.println(“El número “ + num + “es negativo \n”);
else
System.out.println(“El numero: “ + num + “es cero o es positivo”);
}
54
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Ejemplo:
num = 5;
56
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
{
float a,b, c;
a= 10;
b= 2;
if (a >= b)
if (b != 0.0) {
c = a/b;
System.out.println ( a + b+ c);
}
}
57
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
En principio se podría plantear la duda de a cuál de los dos if corresponde la parte else
del programa.
Los espacios en blanco –las indentaciones de las líneas– parecen indicar que la
sentencia que sigue a else corresponde al segundo de los if, y así es en realidad, pues
la regla es que el else pertenece al if más cercano.
58
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
switch ( expresion ) {
case expresion_cte_1:
sentencia_1; Se evalúa expresion y se considera el
break; resultado de dicha evaluación. Si dicho
case expresion_cte_2: resultado coincide con el valor constante
sentencia_2; expresion_cte_n, se ejecuta
break; sentencia_n.
...
case expresion_cte_n: Si ninguna expresion_cte coincide se
sentencia_n; ejecuta la sentencia que está a
break; continuación de default.
default:
sentencia; Si la sentencia break se omite entonces
break; se ejecutan las sentencias contiguas
} hasta encontrar una sentencia break.
59
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Ejemplo:
60
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
If-else
Programa 8:
61
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Programa 9:
Salida:
cant pesos equivalen a conversión moneda.
Programa 10:
Modifique el ejercicio 9 sustituyendo los if´s por switch
Programa 11:
63
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
while ( expresion_de_control ) {
while ( expresion_de_control ) lista de sentencias;
sentencia; }
línea_siguiente línea_siguiente
Se evalúa la expresion_de_control:
si el resultado es falso se salta sentencia y se prosigue la ejecución.
si el resultado es cierto se ejecuta la sentencia (o la lista_de_sentencias) y se
vuelve a evaluar la expresion_de_control. La ejecución de sentencia prosigue
hasta que expresion_de_control se hace falsa.
Alguna variable de las que intervienen en la expresion_de_control deberá ser
modificada dentro del ciclo y eventualmente esto obligará a que la
expresion_de_control se haga falsa pues si no el ciclo continuaría indefinidamente.
64
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Practica 12
Escriba un programa que imprima los
primeros n números naturales pares.
Practica 13
65
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
do do {
sentencia; lista de sentencias;
while ( expresion_de_control ); } while ( expresion_de_control );
línea_siguiente línea_siguiente
66
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Practica 14
Practica 15
67
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
68
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Ejemplo:
int i;
.....
for (i=0 ; i<10 ; i++)
System.out.println(i);
.....
Explicación:
69
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Practica 16
Practica 17
70
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Practica 18
71
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
class Conversion {
//definición de constantes
static int limiteInf = -30;
static int limiteSup = 180;
static int incremento = 5;
//función principal
gcentigrados = limiteInf;
while (gcentigrados <= limiteSup) {
grados.AsignarGradosC(gcentigrados);
gfahrenheir = grados.CalculaGradosF();
System.out.println("grados centigrados: " + grados.ObtenerGradosC());
System.out.println("grados Fahrenheir: " + gfahrenheir);
gcentigrados += incremento;
}
}} 72
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Practica 18
Practica 19
Escribe un algoritmo que lea un número
natural N y un carácter. La salida debe ser un
rombo compuesto del carácter y de la anchura
que especifica el número N. Por ejemplo, si N
es 5 y el carácter es *, el rombo sería:
*
**
***
****
*****
****
***
**
*
74
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Excepciones
75
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Sintaxis:
try
{
//código de la aplicación
}
catch (clase_de_excepción e)
{
//código de tratamiento de esta excepción
}
catch (otra_clase_de_excepción e)
{
//código de tratamiento de esta excepción
}
finally
{
//código que siempre se ejecuta
}
76
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Funcionamiento:
77
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández
PDelValleM@iingen.unam.mx gch@pumas.iingen.unam.mx
Throwable
Exception Error
RuntimeException
ClassNotFoundException
IOException
EOFException
78
Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández