Download “tipo” de datos?

Document related concepts
no text concepts found
Transcript
Primitivas de codificación
Tipos básicos de datos
¿Qué es un “tipo” de datos?



2
Los tipos de datos son categorías de
características asociadas a un grupo de
valores en particular.
Por ejemplo: los números enteros, los
números reales, los caracteres, las hileras
de texto tienen un tipo de dato asociado.
De esta forma la información puede ser
clasificada de acuerdo al uso que se le da a
la misma.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuales características son las que
determina un tipo de datos?

En un lenguaje de programación cada tipo
determina aspectos asociados a la información y a
su representación, incluyendo:
–
–
–
3
El conjunto de valores que se le asocia (si son valores
numéricos, caracteres o lógicos).
El rango de valores válidos para el tipo.
El tamaño necesario para representar cada valor en la
memoria de la computadora (medido en bytes).
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
Los tipos permiten categorizar la
información
‘a’
‘b’
‘c’
‘d’
Verdadero
Falso
booleano
1
2
3
1.5
3.79
2.18
caracter
real
entero
“Casa”
“Escuela”
“Perro”
“Línea”
hileras de texto
Tipo numérico
4
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuáles son los tipos primitivos?



5
Los tipos primitivos son los más simples y
elementales.
Toda la información que maneja un lenguaje
puede representarse directamente o
mediante combinaciones de estos.
Note que una hilera de texto se compone de
“caracteres” o letras individuales por lo que
la “hilera” no es un tipo primitivo.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
Ejemplos de tipos de dato primitivos

En un lenguaje orientado a objetos
normalmente existen tipos de dato para
representar valores:
–
–
–
–

6
lógicos o “booleanos”.
numéricos enteros.
numéricos de punto flotante.
caracteres.
Los valores específicos de cada tipo se
representan mediante “literales” específicos.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué es un literal?


Es una representación explícita de algún
valor dentro del código de un programa.
Ejemplo:
–
–
–
7
Un 1 es un literal de un número de tipo entero.
Una ‘a’ es un literal de caracter.
Un 3.14 es un literal de un número de tipo real o
de punto flotante.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Para que sirven los tipos de datos
lógicos o booleanos?

Se utilizan para representar condiciones lógicas que
toman uno de dos posibles valores:
falso ó verdadero.

8
La palabra “Booleano” proviene del nombre del
matemático George Boole (Boole, 1848) quien
formalizó el álgebra sobre dos valores lógicos.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se pueden representar datos
booleanos en Java?


9
El verdadero se representa con el literal
true.
El falso se representa con el literal false.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se pueden representar tipos de
datos numéricos enteros en Java?
Los tipos de dato enteros en Java son:
Tipo
10
Nombre
Tamaño
Rango
Byte
byte
8 bits
Desde -128 hasta +127
Entero
corto
short
16 bits
Desde -32768
hasta +32767
Entero
int
32 bits
Desde -2 147 483 648
hasta +2 147 483 548
Entero
largo
long
64 bits
Desde -9 223 372 036 854 775
808 hasta + 9 223 372 036 854
775 807
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se pueden representar tipos de
datos numéricos reales en Java?
Los tipos de datos de punto flotante son:
Tipo
11
Nombre
Tamaño
Rango
Punto
flotante
simple
float
32 bits
Desde -3.4028234663852886E+38
Hasta -1.40129846432481707E-45
Desde +1.40129846432481707E-45
Hasta +3.4028234663852886E+38
Punto
flotante
doble
double
64 bits
Desde -1.7976931348626157E+308
Hasta -4.94065645841246544E-324
Desde +4.94065645841246544E-324
Hasta +1.7976931348626157E+308
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se representan los literales de
datos numéricos en Java?
Tipo de dato
Ejemplos
int
100, -219300, 0, 500
long
100l, -219300l, 0l, 500l
float
3.1414f, -124.30f, 0.0f
double
3.1414, -124.30, 0.0
* Note que al long y al float se les coloca una letra al
final del literal (“l” o “f” respectivamente).
12
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué son los tipos de dato caracter?

13
Son aquellos que se utilizan para
representar: letras, dígitos, símbolos
especiales y caracteres de escape.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se representan los literales de
caracter en Java?




14
Los caracteres se representan con una
notación especial para no confundirlos con
otros elementos del lenguaje.
En Java, un caracter se representa mediante
un símbolo encerrado entre comillas simples.
Ejemplos: ‘a’, ‘A’, ‘9’.
También existen caracteres especiales
conocidos como secuencias de escape.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué son secuencias de escape?



15
Algunos caracteres especiales (el cambio de
línea, por ejemplo) requieren de una
representación distinta.
Esta representación es llamada secuencia
de escape.
En Java, los caracteres de escape van
precedidos por un “backslash” \.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
Caracteres de escape en Java
Secuencia
‘\n’
‘\t’
‘\\’
“\””
‘\uXXXX’
16
Significado
Cambio de línea
Tabulador
El caracter \
El caracter “
El caracter UNICODE asociado al
valor XXXX
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué es UNICODE?



17
UNICODE es un conjunto de caracteres
estándares creados para asociar cada
caracter a un valor específico.
En UNICODE un caracter ocupa 16 bits de
memoria (2 bytes).
Su rango va desde el hexadecimal 0000
hasta el hexadecimal FFFF.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Para qué se utilizan los literales con
valor UNICODE explícito ‘\uXXXX’?



18
Caracteres de la forma ‘\uXXXX’, donde XXXX es un
valor UNICODE, sirven para representar símbolos
especiales y caracteres en otros idiomas, tales
como: Árabe, Chino, Japonés.
Ejemplos en Java:
– ‘\u0040’ equivale al valor decimal 64 que es ‘@’.
– ‘\u00D1’ y ‘\u00F1’ equivalen a Ñ y ñ, cuyos
valores decimales son 209 y 241.
Otros lenguajes utilizan representaciones de
caracteres con códigos ASCII.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿En qué se diferencian ASCII y
UNICODE?



19
ASCII (“American Standard Code for Information
Interchange”) es un código de 7 bits (128 valores)
creado por el ANSI o “American National Standard
Institute”.
UNICODE es el conjunto de caracteres de la ISO
“International Standards Organization” que es una
red de 148 institutos nacionales dedicados al
establecimiento de estándares.
El conjunto UNICODE incluye a los 128 caracteres
ASCII.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Entonces todos los caracteres ASCII
son iguales en UNICODE?





20
¡Sí, … pero hay que tener cuidado!
Aunque UNICODE incluye el ASCII, algunos
confunden el ASCII con el Extended ASCII que es
otro conjunto de caracteres.
Extended ASCII es un código de 8 bits que incluye al
ASCII.
Pero UNICODE y Extended ASCII son diferentes
para valores entre 128 y 255.
Por ejemplo la Ñ en Extended ASCII es el 165 pero
en UNICODE es el 209.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se representan hileras de
caracteres?




21
Todos los lenguajes orientados a objetos poseen
una representación de las hileras de caracteres.
Debido a que una hilera está “compuesta” de varios
caracteres, normalmente no son consideradas como
tipos primitivos.
Sin embargo se busca que su manejo sea tan
simple como el manejo de tipos primitivos.
Además, se pueden representar en forma de
literales dentro de algunos lenguajes.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se representan los literales de
hileras de caracteres en Java?




22
En Java las hileras de caracteres se conocen como
“String”.
Los literales se representan con caracteres
encerrados por comillas dobles. Ej: “¡Hola Mundo!”.
String no es un tipo primitivo, sino que se rige por
las reglas asociadas a los objetos.
El String también soporta secuencias de escape en
su contenido.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJEMPLO 1 – Efecto de los caracteres
especiales al imprimir
Ir al ejemplo
EJERCICIO 1 – Efecto de los
caracteres especiales al imprimir
Ir al ejercicio
EJERCICIO 2 – Diferenciación de tipos
de dato
Ir al ejercicio
Primitivas de codificación
Variables
¿Qué son las variables?


Las variables son espacios en memoria
asignados para almacenar valores.
A cada variable se le asocia:
–
–
–
–
–
27
Nombre de la variable.
Tipo de dato.
Valor.
Tamaño o espacio que requiere en memoria.
Dirección de su ubicación en la memoria.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuáles son las características de las
variables?
dirección
valor
notaFinalDelCurso
98
nombre de la variable
28
tamaño: 4 bytes (Java)
tipo: entero
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se crea una variable?



29
La creación de una variable requiere dos
pasos: declarar la variable e inicializar la
variable.
La declaración es la definición del tipo y del
nombre de la variable.
La inicialización es la asignación del valor
inicial.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se declara una variable en
Java?

Se debe escribir el tipo seguido del nombre
que se le quiere dar. Por ejemplo:
int variableEntera;

Se pueden declarar varias variables a la vez
separadas por comas. Por ejemplo:
char primeraLetra, segundaLetra;
30
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se lleva a cabo la inicialización
de una variable en Java?

Para la inicialización, se debe escribir el
nombre de la variable, seguido del operador
de asignación “=“, seguido del valor a
asignar. Por ejemplo:
variableEntera = 234;
primeraLetra = ‘a’;

En algunos casos, se puede mezclar la
declaración y la inicialización. Por ejemplo:
int variableEntera = 234;
31
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué sucede en la memoria al crear
una variable?

Al crear la variable:
double peso = 240.6;

Se crea en memoria una variable cuyo valor
es la representación correspondiente a un
240.6.
Esta variable está ubicada
peso
32
240.6
en algún lugar de la memoria
RAM y su contenido es una
secuencia de bits que corresponde
al valor 240.6
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué sucede si una variable no es de
un tipo primitivo?


Las variables pueden ser de tipo primitivo o
pueden ser “referencias” a instancias.
La inicialización de las segundas se realiza
por medio del comando new con el que se
solicita la construcción de una instancia de la
clase. Por ejemplo:
Carro miCarro = new Carro();
33
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué son entonces las referencias a
objetos?



34
Las variables que se utilizan para “referirse” a
objetos se conocen como “referencias”.
La referencia a un objeto es una variable que
almacena “la dirección” donde se encuentra un
objeto en memoria.
A diferencia de las variables de tipos primitivos, que
almacenan el valor directamente dentro de ellos, las
referencias lo que guardan es la dirección del lugar
de memoria donde se encuentra la instancia.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué sucede en la memoria al crear
una referencia hacia un objeto?

Cuando se declara algo como lo siguiente:
Carro miCarro;
se crea en memoria una referencia cuyo valor es
nulo o “null”, o sea que se puede visualizar tal como
lo muestra el siguiente diagrama.
miCarro
null
35
esta variable está ubicada
en algún lugar de la memoria
RAM
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo inicializar una referencia a
objetos?



Cuando se solicita crear un nuevo objeto con la
instrucción new, se crea en memoria una instancia
de la clase especificada.
Por lo tanto con la asignación mediante el igual ( = ),
se asigna su dirección dentro de la referencia.
Por ejemplo:
Carro miCarro; // Declaración de la referencia
miCarro = new Carro(); // Inicialización
Lo anterior se puede visualizar en memoria de la siguiente
forma…
36
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué sucede en memoria al crear una
instancia?

El carro recién creado es accedido a través
de la referencia llamada “miCarro”.
Carro miCarro = new Carro();
miCarro
La referencia es una
variable que tiene
adentro la dirección
donde está la instancia.
Esta sería la manera de
saber donde está el carro
37
Vocho
(instancia)
La instancia es el
objeto que fue creado
en la memoria. Este
sería el carro en sí con
sus atributos y
métodos.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo usar referencias a objetos?



38
A partir de ese momento se puede utilizar la
referencia miCarro para acceder a la instancia
recién creada.
Esto se lleva a cabo de formas diferentes según el
lenguaje de programación que se utilice.
Tratar de acceder a una referencia que no ha sido
inicializada es como ir a buscar a alguien a una
dirección que no existe, ya que su valor es nulo.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se definen los nombres de
variables en Java?



Para los nombres de variables se puede usar los
siguientes caracteres: ‘a’, ‘b’, ..., ‘z’, ‘A’, ‘B’, ..., ‘Z’,
‘0’, ‘1’, ..., ‘9’, ‘#’, ‘_’.
Para la primera letra del nombre de una variable no
se puede utilizar un dígito.
Ejemplos:
int variableEntera1, variableEntera2;
double aproximacionDelValorPi;
char letra2;
39
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
Recomendaciones para nombrar
variables



40
Inicie siempre los nombres de variable con
una letra minúscula.
Utilice palabras significativas.
Ponga con mayúscula la primera letra de
cada palabra significativa dentro del nombre,
excepto la primera.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuáles son algunos ejemplos de
nombres de variables apropiados?

Note que los siguientes nombres dan una
idea del uso que se pretende dar a cada una
de las variables:
double productoInternoBruto;
float saldoMensual;
int cantidadesEstudiantes;
char digitoInicialPlaca;
41
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué es una constante?


42
Las constantes son variables cuyo valor es
asignado una única vez, y no puede ser
cambiado posteriormente.
Su inicialización se debe llevar a cabo junto
con su declaración.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se declara una constante en
Java?

Las constantes en Java se declaran con los
calificativos static final. Ejemplo:
static final double PI = 3.1415926536;

43
Se recomienda nombrar las constantes
utilizando solamente letras mayúsculas.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Es posible convertir un valor de un
tipo de dato a otro ?



Se puede convertir un valor de un tipo de dato a otro
mediante un mecanismo llamado “casting”.
Para convertir de un tipo a otro, se antepone, entre
paréntesis, el nombre del tipo al que se desea
convertir el valor.
Ejemplos:
–
–
–
44
(int) 32.24 produce el entero 32.
(double) 3 produce el double 3.0.
(byte) 120 produce el byte 120.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJERCICIO 3 – Declaración,
inicialización y acceso de variables
Ir al ejercicio
Primitivas de codificación
Variables como
atributos de una clase
¿Dónde se pueden utilizar variables?



47
Las variables pueden ser utilizadas tanto
para declarar los atributos de un objeto como
para crear variables “locales” dentro de los
métodos.
Los atributos pueden ser “accesados” por
todos los métodos de la instancia a la que
pertenecen.
Si un método es declarado como estático,
solamente puede utilizar atributos estáticos.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuál es el ciclo de vida de una
variable?


48
Las variables de instancia o atributos existen
desde el momento que se crea la instancia
con new hasta que se destruye la instancia.
Mientras que el objeto exista, el mismo
puede guardar su “estado” dentro de sus
variables de instancia. En otras palabras,
los atributos conservan el valor mientras el
objeto exista.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuál es el ciclo de vida de una
variable? (continuación)


49
Las variables locales a un método existen
solamente mientras el método es ejecutado.
Estas desaparecen en el momento en que el
método finaliza su ejecución.
El main o método principal se comporta
como un método más.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
Declaración de variables dentro de una
clase en Java
class nombreClase {
private tipo variableDeInstancia;
...
public método1() {
tipo variableLocal;
...
}
public static void main (String [] s) {
tipo variableLocal;
...
}
}
50
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué significa público y privado?


En P.O.O. público y privado se refiere al nivel de
acceso a los miembros (métodos y atributos) de una
clase.
En la mayoría de los lenguajes de P.O.O, los
miembros de una clase pueden ser (entre otros):
–
–
51
private: accesibles solo por medio de métodos dentro de la
clase.
public: accesibles directamente desde fuera de la clase.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué debe ser privado y qué debe ser
público?

Normalmente se recomienda lo siguiente:
–
–

52
Los atributos de una clase deben ser privados.
La interfaz debe ser pública para que otros
puedan utilizar la clase.
Seguir estas recomendaciones tiene una
serie de ventajas…
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuáles son los beneficios de no dar
acceso directo a los atributos de una clase?



53
Si se tiene un equipo de
enfriamiento, la manera
apropiada de cambiar y de
ver la temperatura es a
través de sus controles.
El usuario no manipula
directamente los
mecanismos internos que
regulan la temperatura.
Si al equipo se le cambia su
mecanismo interno, el
usuario no tiene que
aprender nuevamente cómo
cambiar la temperatura.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se puede acceder a los
atributos de una clase?


54
Se recomienda que los atributos de una clase sean
accedidos por medio de métodos utilizados para
guardar su valor dentro de la instancia o recuperarlo.
A estos métodos se les asigna normalmente un
nombre utilizando los términos en inglés (“set” y
“get”) por la comodidad que da el hecho de ser
palabras de solo tres letras con un significado
directo (“asignar” y “recuperar”).
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se puede acceder a los
atributos de una clase? (continuación)


55
Asignar o “set” se usa para tomar un valor
desde fuera del objeto y guardarlo dentro de
él.
Recuperar o “get” se usa para tomar el valor
que tiene un atributo dentro del objeto y
devolverlo a quien lo solicitó.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se pueden crear los métodos
set y get?

Si una clase tiene un atributo llamado edad.
Entonces:
–
–
56
void setEdad(double edadAAsignar) se
puede crear para asignar un valor que viene
desde fuera del objeto en el parámetro
edadAAsignar para guardarlo dentro del atributo
llamado edad.
double getEdad() se puede crear para pedirle
al objeto que proporcione una copia del valor del
atributo edad.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuál es el beneficio de crear métodos
set y get?




57
Permiten la validación de los valores que se le están
asignando a los atributos del objeto.
Por ejemplo: en una clase llamada Mes, el método
setDia(int dia) puede validar que el día no
tenga un valor mayor a 30 o 31 dependiendo el mes
en cuestión.
Permiten que la estructura interna de una clase se
modifique manteniendo la misma interfaz.
Por ejemplo: un conductor de un vehículo puede ver
la velocidad del auto aunque haya cambiado el
sistema del velocímetro.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuál es el beneficio de crear métodos
set y get? (continuación)


58
El uso de set y get genera independencia
entre la interfaz y la implementación, lo cual
es recomendable.
A pesar de que el programador puede
ponerle otro nombre a métodos para guardar
y recuperar, lo más utilizado es “set” y “get”.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJEMPLO 2 – Utilización de métodos
set() y get()
Ir al ejemplo
¿Qué significa estático?




60
Los miembros estáticos son aquellos que
pertenecen a una clase pero no pertenecen a
ninguna instancia específica.
Si un atributo es declarado como estático, todas las
demás instancias de la misma clase pueden leer y
escribir directamente en él.
Si un método es declarado como estático, éste se
puede invocar sin necesidad de crear una instancia.
En Java se declaran con el calificativo static.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJERCICIO 4 – Accediendo a los
atributos de una instancia
Ir al ejercicio
EJEMPLO 3 – Diferenciación entre
referencias e instancias
Ir al ejemplo
Primitivas de codificación
Entrada / Salida básica
¿Cómo se podría hacer un programa
que interactúe con un humano?



64
Los programas frecuentemente requieren
datos de entrada para realizar sus funciones.
También requieren mostrar los resultados de
su ejecución.
La entrada / salida de los programas puede
darse por muchos medios distintos: en
consola, con ventanas, páginas web, la
impresora o el sistema de archivos.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se lleva a cabo la entrada y
salida básica de datos en Java?


65
Existen mecanismos de entrada/salida tanto
para tiras de caracteres (String) como para
flujos de bytes.
Dado que en una hilera se puede
representar un literal de cualquier tipo
primitivo, una opción utilizada en Java es
leer cualquier valor como String y
posteriormente convertirlo al tipo específico
de la variable que lo va a almacenar.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se escriben hileras de
caracteres en pantalla con Java?



66
En Java existe un objeto del sistema llamado
System.out que representa el punto de
salida de información hacia el usuario.
Los métodos print y println de
System.out se utilizan para la impresión de
tiras de caracteres hacia la pantalla de
consola.
También existe System.err que es
utilizado para salida de mensajes de error.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuál es la diferencia entre print y
println en Java?

println imprime el String y cambia de línea.
Ejemplo:
System.out.println(“Hola mundo!”);

print imprime el String sin cambiar a la
siguiente línea. Ejemplo:
System.out.print(“Hola mundo!”);
67
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se pueden leer datos en Java?


68
System.in sirve para leer cadenas de bytes,
sin embargo es común utilizar componentes
de más alto nivel para la lectura de
caracteres digitados por el usuario.
Por ejemplo se pueden utilizar las ventanas
de interacción que existen en una clase
llamada JOptionPane.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Qué es la clase JOptionPane?

JOptionPane es una clase de Java que tiene
varios tipos de pantalla de diálogo y que
sirve tanto para leer como para desplegar
datos:
–
–
69
El InputDialog lee datos digitados por el usuario.
El MessageDialog despliega mensajes en
ventanas independientes.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se pueden leer datos con
JOptionPane?

70
La entrada de datos se puede llevar a cabo
con el método showInputDialog que presenta
una pantalla para entrada de datos.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se ve una pantalla de diálogo
para entrada de datos?
String nombre = JOptionPane.showInputDialog(" Digite su
nombre");
71
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJEMPLO 4 – Demostración del uso
de paneles para entrada de datos
Ir al ejemplo
¿Cómo se pueden escribir datos con
JOptionPane?

73
La entrada de datos se puede llevar a cabo
con el método showMessageDialog que
presenta una pantalla para despliegue de
datos.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo funciona el
JOptionPane.showMessageDialog(…)?
JOptionPane.showMessageDialog(null,
“salida”, “titulo”,
JOptionPane.tipoDeMensaje);
–
–
–
–
74
null en el primer parámetro indica que no se relacionará
esta ventana con ninguna otra.
“salida” es el String que va a presentarse con la salida
deseada.
“titulo” es el título que aparece en el borde de la ventana.
tipoDeMensaje determina las opciones o botones, y el
icono o dibujo, que tendrá la ventana.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se ve una pantalla de
mensajes?
JOptionPane.showMessageDialog(null,"¿
Desea
continuar?", "PREGUNTA", JOptionPane.QUESTION_MESSAGE);
75
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJEMPLO 5 – Demostración del uso
de paneles con mensajes de salida
Ir al ejemplo
Primitivas de codificación
Operadores aritméticos
¿Qué operaciones pueden ser llevadas
a cabo con valores numéricos?


78
Los tipos numéricos primitivos permiten
realizar las operaciones aritméticas básicas
sobre ellos.
Estas son: suma, resta, producto, división y
módulo (o residuo).
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuáles son los operadores
aritméticos con enteros en Java?
Operador
79
Ejemplo
Resultado
Suma
+
a=1+2
a vale 3
Resta
-
a=7–2
a vale 5
Producto
*
a=2*7
a vale 14
División
/
a = 35 / 4
a vale 8
Residuo
%
a = 35 % 4
a vale 3
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuáles son los operadores
aritméticos con flotantes en Java?
Operador
80
Ejemplo
Resultado
Suma
+
a = 1.5 + 2.5
a vale 4.0
Resta
-
a = 7.5 – 2.3
a vale 5.2
Producto
*
a = 2.0 * 7.5
a vale 15.0
División
/
a = 34.0 / 4.0
a vale 8.5
Residuo
%
a = 34.5 % 4.0 a vale 2.5
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo se lleva a cabo la evaluación
de expresiones?



81
En la mayoría de los lenguajes toda
expresión se evalúa hasta obtener un valor
único.
Las expresiones siempre producen un valor
de un tipo primitivo o son reducidas a una
referencia hacia un objeto.
En una expresión, el nombre de una variable
siempre será sustituido por el valor actual en
memoria que tiene la variable.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuál es la prioridad entre operadores
aritméticos?

El orden de prioridad de los operadores
aritméticos es el siguiente:
1.
2.
3.

82
Paréntesis: ( )
Multiplicativos: *, /, %
Aditivos: +, -
Si existen varios operadores del mismo tipo
al mismo nivel, estos se evalúan de
izquierda a derecha.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cómo visualizar los pasos que sigue el
compilador para evaluar una expresión?
y = ( (2 + 4 * 2) - 5 * (3 - 5)) / 3
Secuencia de evaluación:
y = ( (2 + 8) - 5 * (3 - 5) ) / 3
y = ( (10) - 5 * (3 - 5) ) / 3
y = ( 10 - 5 * (3 - 5) ) / 3
y = ( 10 - 5 * (-2) ) / 3
y = ( 10 - 5 * -2 ) / 3
83
y = ( 10 - -10 ) / 3
y = (20) / 3
y = 20 / 3
y=6
y
6
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJERCICIO 5 – Evaluación de
expresiones aritméticas
Ir al ejercicio
¿Existen otros tipos de operadores?



85
¡Sí!
Existen operadores conocidos como
operadores unarios ya que involucran un
único operando por operador.
Además existen operadores de asignación
que sirven para modificar directamente una
variable.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Para que sirven los operadores
unarios en Java?


Algunos operadores unarios sirven para sumar o
restar directamente el valor de una variable.
El efecto de la operación es diferente si se coloca el
símbolo antes o después de la variable. Por
ejemplo:
–
–
86
En el pre incremento y pre decremento primero modifican la
variable y luego permiten tomar su valor
En el post incremento y post decremento primero se usa el
valor de la variable y luego la modifica la misma.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
Ejemplo del uso de operadores de
incremento y decremento.
Suponga que c tiene un valor de 2.
Operador
87
Ejemplo
Resultado
Postincremento
d = c++;
d vale 2, c vale 3
Preincremento
d = ++c;
d vale 3, c vale 3
Postdecremento
d = c--;
d vale 2, c vale 1
Predecremento
d = --c;
d vale 1, c vale 1
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Existen otros operadores importantes
en Java?


88
¡Sí! Existen operadores de asignación
directa.
Estos operadores toman el valor de una
variable como primer operando, le aplican
una operación utilizando un valor dado como
segundo operando, y finalmente dejan el
resultado en la misma variable de donde se
tomó el primer operando.
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
¿Cuáles son los operadores de
asignación en Java?
Operador Valor previo Operación
89
Resultado
=
c vale 30
c = 15;
c vale 15
+=
c vale 10
c += 12;
c vale 22
-=
c vale 4
c -= 6;
c vale -2
*=
c vale 2
c *= 15;
c vale 30
/=
c vale 27
c /= 3;
c vale 9
%=
c vale 9
c %= 4;
c vale 1
Autor: Edgar Casasola M.
Diseño: Jorge Villalobos S.
EJEMPLO 6 – Utilización de
expresiones aritméticas
Ir al ejemplo
EJERCICIO 6 – Utilización de
expresiones aritméticas
Ir al ejercicio