Tipos de datos
El tipo de datos determina
Los valores que puede tomar una variable
Las operaciones que se pueden realizar sobre ella
Dos categoras principales de tipos de datos
Tipos primitivos
Tipos referencia: para clases, interfaces y arrays
Java es un lenguaje fuertemente tipado
Cada variable y expresin tienen un tipo
En todas la asignaciones se comprueba la compatibilidad de tipos.
Concepto de variable
Las variables son los nombres en un lenguaje de programacin
Las variables siempre son de un tipo determinado
Al declarar la variable, se indica siempre el tipo y su nombre double radio.
Tipos primitivos
Representan valores bsicos de los elementos de un programa
Tienen un tamao y formato fijos
Se definen literales (valores constantes)
Clasificacin general:
Nmeros enteros
Caracteres
Nmeros reales
Aritmticos
Booleanos
Nmeros enteros
Nmeros enteros positivos y negativos
De distintos tamaos
Formato: complemento a dos
Literales enteros
Formato decimal
Cifras decimales
0, 34: tipo int
Con l o L tras el nmero: 58941623984L: tipo long
Formato octal
Cifras octales: 0,1,2,3,4,5,6,7
Cada cifra octal representa 3 bits
Los nmeros octales comienzan por 0: 0642, 0642L
Formato hexadecimal
Cifras hexadecimales: 0,1,2,3,4,5,6,7, 8, 9, a, b, c, d, e, f (tambin sirve en maysculas)
Cada cifra hexadecimal representa 4 bits
Los nmeros hexadecimales comienzan por 0x: 0xa54, 0xE08DL
Tipo carcter
En realidad tambin es un entero (sin signo)
Aritmtica de caracteres
Representacin de un carcter por su cdigo en formato Unicode
Literales carcter
Un carcter se representa entre comillas simples
a, A (son caracteres diferentes) ,
O bien como su cdigo Unicode
\u0061 (a), \u0041 (A)
Permite representar cualquier alfabeto
Caracteres especiales (secuencias de escape): comienzan por \
Nmeros reales
Nmeros reales positivos y negativos
Aritmtica de punto flotante (estndar IEEE 754)
Signo * mantisa * 2 exponente
Literales reales
Deben incluir
O bien un punto decimal (cuidado, no una coma!)
O bien una e o E (exponencial)
1e2 == 1*102
Ejemplos: 0.0, 4.0, 4., .23, 1.e2, 2E-2, .4e+4
Por defecto, son de tipo double
Salvo que incluyan una f o F al final
Ejemplos: 4.0f, 4.f, .23F, 1.e2F, 2E-2f, .4e+4f
Booleanos
Representan los valores lgicos true y false (literales)
Base para las expresiones lgicas (condiciones)
Los literales booleanos true y false no son equivalentes a los enteros 1 y 0
Operaciones lgicas bsicas:
Textos
String no es un tipo de datos primitivo sino una clase definida en Java para representar cadenas de
textos. Es decir, las variables String son referencias al objeto de tipo String.
Las cadenas de texto son una de las variables ms utilizadas en Java, por eso hay una forma especial
abreviada de crearlas:
String s = asdf;
El contenido de la cadena de texto se escribe entre comillas dobles.
Ejemplos: perro, (cadena con un espacio en blanco),
(cadena vaca), a (cadena formada por el carcter a: a a)
Operadores
Un operador es un elemento que toma uno o ms operandos y produce un nuevo valor
Operadores unarios. Ej: (-): -7
Operadores binarios. Ej: (*): 2.5 * 3.2
Operadores terciarios. Ej: (?:): b?(a>2):(c<5)
Tipos de operadores
Operadores aritmticos
Operadores relacionales
Operadores lgicos
Operadores a nivel de bit
Operadores aritmticos
Realizan las operaciones clsicas de la aritmtica:
Incremento y decremento
(++) y (--): aumentan o decrementan el valor de la variable en uno
Existen dos variantes:
Preincremento (Predecremento): ++a (--a): primero se incrementa (decrementa) y luego se produce el
valor.
Postincremento (Postdecremento): a++ (a--): primero se produce el valor y luego se incrementa
(decrementa).
Operadores relacionales
Tanto los operandos como el resultado son booleanos
Producen un resultado booleano:
true: si la relacin es cierta
false: si la relacin es falsa
Operador ?:
Operador ternario expresin1 ? expresin2 : expresin3
Se evala expresin2 si expresin1 es true, y expresin3 en caso contrario
Similar a una sentencia condicional if-then-else
Ejemplo:
denom == 0 ? 0 : num/denom
Expresiones aritmtico-lgicas
Mezcla de expresiones aritmticas, relacionales y lgicas. Por ejemplo:
3+7 < 4*3 || 9 < 3
Ejemplo:
Se debe hacer la declaracin de la renta si se tienen al menos 18 aos y menos de 66, o bien si,
teniendo ms de 66, los ingresos anuales son ms de 20000
Precedencia de operadores
Define cmo se evala una expresin cuando hay varios operadores presentes
Por ejemplo:
a=x+y2/2+z
es distinto de
a = x + (y 2) / (2 + z)
Orden de precedencia
Operadores unarios
Operadores multiplicativos, de izquierda a derecha
Operadores aditivos, de izquierda a derecha
Operadores de relacin
Operadores de asignacin
Comentarios
/* ... */: comentario de bloque.
Todo lo que aparece entre las dos marcas se considera un comentario.
/** ... */: comentario de documentacin
Caso particular de los comentarios de bloque.
Inclusin del comentario en la documentacin del programa generada automticamente con la
herramienta javadoc
//: Comentario de lnea
Desde la marca al final de esa lnea se considera un comentario.
Palabras reservadas
Forman parte del lenguaje Java propiamente dicho y no pueden usarse como nombres de clases,
objetos, etc.
Ejemplos de palabras reservadas: class, new, int, void, final, etc.
Identificadores
Nombres que elige el programador para distintos elementos del programa: clases, objetos, variables,
mtodos, etc.
Deben empezar con una letra y seguir con una sucesin de letras y cifras
Letras vlidas para formar identificadores:
Caracteres UNICODE: alfabeto latino, griego, hebreo, cirlico, con acentos, etc
Los siguientes caracteres: subrayado ( _ ) y dlar ( $ )
Ejemplos de identificadores: VolumenCilindro, PI, radio, altura
Variables
Nombres que hacen referencia a:
Objetos de una clase.
Elementos de tipos primitivos.
Una variable queda determinada por:
Un nombre
La clase a la que pertenece el objeto o bien el tipo primitivo (que determina qu valores se
pueden guardar y con qu rango).
Declaracin de variables
Se escribe primero el nombre del tipo o clase, y luego el nombre de la variable
double radio;
Asignacin de variables
Nombre de variable seguido de un signo de igual seguido de una expresin del mismo tipo o clase que
la variable a la que se le est asignando un valor
radio = 23.4;
radio = 12.4 + 4.2 + a;
La declaracin y asignacin de variables pueden realizarse a la vez:
double radio = 23.4;
String texto = Programacin;
Constantes
Algunas variables se declaran como constantes. Eso quiere decir que su valor no puede cambiar en
toda la ejecucin del programa. Se preceden por la palabra reservada final.
final double PI = 3.1415926536;
Literales
Se llama literales a posibles valores de tipos primitivos predefinidos en el lenguaje
Nmeros enteros
Nmeros reales
Booleanos
Caracteres
Textos (String no es tipo primitivo)