Datos y variables
Fundamentos de programación/
Programación I
2007-2008
Datos y variables
•
•
•
•
Mi primer programa de Java
¿Qué son datos?
¿Qué son variables?
Variables en Java
Mi primer programa de Java
• Vamos a escribir nuestro primer programa en Java
• Recuerda que el código fuente siempre se encuentra
en un archivo con extensión .java
• En nuestro ejemplo, vamos a guardar el programa en
un archivo llamado HolaMundo.java
Componentes de un programa
class HolaMundo {
// comentario, no hace parte del programa
public static void main(String[] args) {
// aquí se escriben las instrucciones
} // fin de ‘main’
} // fin de ‘HolaMundo’
El primer programa
class HolaMundo {
// comentario, no hace parte del programa
public static void main(String[] args) {
// aquí se escriben las instrucciones
System.out.println(“¡Hola Mundo!”);
} // fin de ‘main’
} // fin de ‘HolaMundo’
¿Qué son datos?
• Los datos representan información que queremos
recordar, comparar, o manipular
• Pueden ser números, textos, imágenes o sonidos
• Un dato puede estar compuesto de varios otros datos
• Ejemplo de un dato compuesto:
– Apellido:
– Teléfono:
– Foto:
Jonsson
935422602
[imagen]
Datos en la computadora
• Recuerda que los datos se guardan en la memoria de
la computadora en forma de bytes
• Cada dato ocupa un cierto espacio en la memoria
• Para manipular datos, la CPU tiene que saber dónde
recuperarlos de la memoria
¿Qué son variables?
• Una variable es un nombre o identificador asociado
con un dato
– Ejemplos: apellido, telefono, foto
• Para cada variable, el programa reserva un espacio
suficiente para guardar el dato en la memoria RAM
• Para recuperar el dato asociado con una variable, la
CPU tiene que buscar en el espacio reservado
• “Variable” indica que se puede cambiar el dato
asociado con un identificador
• No obstante, la ubicación en la memoria nunca cambia
Variables y la memoria
RAM
dirección en memoria
contenido
126
127
128 55
telefono
129 193
130 105
131 104
132
133
134
Variables en Java
• En Java, se necesita una variable para cada
dato que se quiera guardar en la memoria
• El programador escoge el identificador de cada
variable
• Java es “strongly typed” (basado en tipos): para cada
variable, debe definirse el tipo del dato asociado:
–
–
–
–
número entero
texto
imagen
etc.
Variables en Java
•
•
•
•
•
Identificadores
Tipos de datos
Declaración
Inicialización y asignación
Conversión de tipos
Identificadores
•
•
•
•
•
•
No pueden coincidir con una palabra reservada
Distinción entre mayúsculas y minúsculas
Secuencia de letras, dígitos, _ (subrayado) y $
No se puede poner acentos
Siempre empiezan con una letra
Ejemplos:
– Correcto: apellido, aula219, dos_veces, cantidad$250
– Incorrecto: class, número, re-100, 80s
Normas para identificadores
•
•
•
Los programadores de Java se han acordado de
normas para identificadores
Ayuda leer un programa escrito por otra persona
Normas adoptadas:
1.
2.
3.
4.
Los archivos .java siempre empiezan con una mayúscula
Los identificadores de variables siempre empiezan con una
minúscula
Si el identificador está compuesto de más que una
palabra, cada palabra subsiguiente empieza con
mayúscula (Ej: HolaMundo.java, unaVariableLarga)
Los identificadores deben describir de forma no ambigua
el dato asociado
Palabras reservadas
class
public
static
void
Empieza un programa en Java
Aparece en el método ‘main’
Aparece en el método ‘main’
Aparece en el método ‘main’
Tipos de datos básicos
•
•
•
•
Enteros:
Reales:
Caracteres:
Boolean:
int, byte, short, long
float, double
char
boolean – valor true o false
Tipos enteros
Tipo
Java
Tamaño
Número de
valores
Rango de valores
byte
1 byte
28 = 256
-128..+127
short
2 bytes
216 = 65,536
-32768..+32767
int
4 bytes
232 =
4,294,967,296
-2147483648..
+2147483647
long
8 bytes
264 = 18.4 x 1018 -9223372036854775808
..+9223372036854775807
Tipos reales
Tipo
Java
Tamaño Número de Rango de
valores
valores
Precisión
float
4 bytes
7 dígitos
double 8 bytes
232 =
4,294,967,296
-3.4 x 1038
.. 3.4 x 1038
264 = 18.4 x
1018
-1.7 x 10308 15 dígitos
.. 1.7 x 10308
Declaración
• Antes de utilizar una variable, siempre hay que
declararla
• Cuando declaramos una variable, indicamos el tipo de
su dato asociado y su identificador
• Como resultado, el programa reserva un espacio
suficiente para guardar el dato en la memoria RAM
• Todavía no hemos indicado que dato queremos
guardar
Declaración
• La declaración de una variable siempre sigue el modelo
<tipo> <identificador> ;
• Se puede declarar varias variables a la vez:
<tipo> <identificador>, <identificador> […] ;
• Ejemplos:
boolean estaEstudiando;
int numeroDeAlumnos;
char myChar1, myChar2, myChar3;
int indice1, indice2;
Inicialización
• Para asociar un dato con una variable, hay que
inicializar la variable
• La inicialización se hace mientras una operación que
se llama asignación
• Sólo se puede inicializar una variable con un dato del
tipo correcto (sino el programa no compila)
• Como resultado, el dato queda guardado en el
espacio respectivo
Asignación
• La asignación de una variable sigue el modelo
<identificador> = <expresión> ;
• <expresión> puede ser reemplazado con
– un valor básico (literal)
– otra variable
– el resultado de una operación más compleja
• ¡El resultado de <expresión> tiene que ser del
mismo tipo que la variable!
• ¡El carácter ‘=’ no significa igualdad!
Asignación
• La asignación se puede combinar con la declaración:
<tipo> <identificador> = <expresión> ;
• Ejemplos:
boolean estaEstudiando = true;
int numeroDeAlumnos;
numeroDeAlumnos = 31;
int indice1 = 12;
int indice2 = indice1;
Asignación
• Siempre se puede cambiar el dato asociado con una
variable
• Para cambiar el dato asociado, hay que asignar otro
valor a la variable
• Ejemplo:
int numeroDeAlumnos;
numeroDeAlumnos = 31;
numeroDeAlumnos = 26;
Problema
• ¿Cómo intercambiar los valores de 2 variables?
– Entrada: valor1 es igual a 10 y valor2 a 20
– Salida: valor1 es igual a 20 y valor2 a 10
• Para la solución, ver Intercambio.java
Literales
• Algunos valores básicos se pueden expresar
directamente en Java
• Las palabras que describen estos valores se llaman
literales
• Hay varios literales en Java:
– Enteros:
10
– Reales:
18.54
– Caracteres:
‘d’
– Cadenas de caracteres:
“Hola”
– Boolean:
true y false
Literales enteros
• Un número entero se escribe normalmente sólo:
short aShort = 12;
int anInt = 51;
• Excepción: un entero del tipo long fuera del rango
del tipo int necesita una L al final:
long aLong = 562;
long badLong = 5124723163;
long goodLong = 5124723163L;
Literales de punto flotante
• Un número de punto flotante literal es compatible con
el tipo double:
double goodDouble = 12.7;
• Un número de punto flotante literal seguido de una F
es compatible con el tipo float:
float goodFloat = 12.7F;
float badFloat = 12.7;
Literales de punto flotante
• Se puede utilizar exponentes
• Por ejemplo, 12 700 es igual a 1.27*104 y a 12.7*103
• En un literal de punto flotante, e3 significa *103
• Ejemplos:
float goodFloat = 12.7e3F;
// se imprime 12700.0
double goodDouble = 73e-4;
// se imprime 0.0073
• El literal 0.14 se puede escribir también .14
Precisión y aproximación
• Cuando asignamos un valor a una variable de tipo
float (o double) un literal de punto flotante con
más de 7 dígitos (o 15), su representación en la
variable es una aproximación.
• Con menos de 7 (o 15) dígitos, su representación en
la variable es precisa.
Caracteres
• Carácter almacenado en 2 bytes = 16 bits
• En teoría, permite representar 216 = 65,536
caracteres distintos
• Tabla Unicode recoge más de 30 000 caracteres
distintos procedentes de lenguas escritas distintas
(Ej: griego, árabe)
• Los primeros 28 = 256 corresponden a los de la tabla
ASCII
• Declaración e inicialización:
char letra = ‘A’;
char respuesta = ‘Y’;
Caracteres literales especiales
Códigos
‘\n’
‘\r’
‘\t’
‘\’’
‘\’’’
‘\\’
Significado
Nueva línea
Retorno de carro
Tabulación
Comilla simple
Comilla doble
Barra inclinada inversa
Boolean
• Variable con valor lógico
• Acepta dos literales posibles: true y false
• Ejemplo:
boolean ojosNegros = true;
• Almacenado en 1 bit de memoria
Cadenas de caracteres: String
• El tipo String ( string) no es básico
• String no es una palabra reservada
• Declaración e inicialización:
String saludo = “Hola Jefe”;
• El literal cadena es un conjunto de caracteres
• Dentro de una cadena se puede utilizar caracteres
especiales:
“\“Hola\nJefe\””:
“Hola
Jefe”
Conversión de tipos
• Para enteros, se puede cambiar el tipo de un dato
• La conversión de tipos se puede hacer solo en este
sentido:
byte  short  int  long
• No se pierde información
1 byte  2 bytes  4 bytes  8 bytes
Conversión de tipos
// Inicializa una variable con un entero
int goodInt = 79124;
// Convierte el entero al tipo ‘long’
long goodLong = goodInt;
// ¡Si se convierte al tipo ‘short’
// se pierde información!
short badShort = goodInt;
Palabras reservadas
class
public, static, void
byte, short, int, long
float, double
char
boolean
true, false
inicio de programa
método ‘main’
enteros
reales
caracteres
tipo Boolean
literales Boolean
Descargar

Datos y operadores - DTIC: Departament de Tecnologies …