F.4411.316.013 - POEJ/MIXTO/F.
Generation/
Curso JAVA (Online-Nacional) 3ªEd.
Java Bootcamp
Eduardo Corral Muñoz
eoi_eduardo@corral.es
Variables y
tipos de datos
Índice
_01 Conceptos básicos
_02 Tipos Primitivos
_03 Manejando datos
_04 Tipos no primitivos
01
Conceptos básicos
Tipos de variables
Una variable es un contenedor para almacenar datos
Pueden ser de diferentes tipos (data type):
String, int, float, char, boolean, objeto … var
Las variables se declaran:
type nombre_variable = valor; int numero = 9;
o también
type nombre_variable; int numero;
nombre_variable = valor; numero = 9;
Tipos de variables
Tipos de datos primitivos predefinidos
Empiezan con minúscula. Contienen un único valor.
byte, short, int, long, float, doble, boolean y char
Tipos de datos no-primitivos o de referencia creados por el
programador
Empiezan con mayúscula. Tienen propiedades y métodos
String, Arrays y Class
Convenciones Nombres
Empiezan con minúscula.
Sin caracteres especiales (Unicode).
No pueden ser palabras reservadas del lenguaje.
No se deben repetir dentro del mismo ámbito.
Si tiene mas de una palabra, “camel case”. miNombreEs
Pueden comenzar con una letra, un guion bajo o $ seguidos de
letras o números.
Usando variables
Si queremos la clase YoSoy sea más “versatil” y sirva para todos los
alumnos y para cualquier otro curso podemos emplear variables…
public class YoSoy {
public static void main(String[] args) {
String nombre = “Eduardo";
String curso = “Java";
System.out.println("Hola, soy “ + nombre);
System.out.println(“Acabo de empezar con “ + curso);
}
}
02
Tipos primitivos
Enteros
byte:
número entero de 1 byte, 8 bits -128 a 127
short:
número entero de 2 bytes -32768 a 32767
int:
número entero de 4 bytes -2147483648 a 2147483647
long:
número entero de 8 bytes -9223372036854775808 a
9223372036854775807
Enteros
public class PrimitivosEnteros {
public static void main(String[] args) {
byte numeroByte = 127;
System.out.println(“numeroByte = “ + numeroByte);
System.out.println(“En bytes son “ + Byte.BYTES);
System.out.println(“En bits son “ + Byte.SIZE);
System.out.println(“Máximo: “ + Byte.MAX_VALUE);
System.out.println(“Máximo: “ + Byte.MIN_VALUE);
}
}
Enteros
public class PrimitivosEnteros{
public static void main(String[] args) {
byte numeroByte = …
short numeroshort = …
int numeroInt = …
long numeroLong = …
}
}
Reales – Coma flotante
float:
4 bytes 1,4e−045 a 3.4e+038
Los valores deben terminar con “f” float dato= 5.45f;
double:
8 bytes 4,9e−324 a 1.79e+308
Los valores deben terminar con “d” double dato= 9.52d;
Notación científica: float d = 8e5f 8x105 800000.0
Reales – Coma flotante
public class PrimitivosReales {
public static void main(String[] args) {
float numeroFloat = 3210f; //3.21e3f
System.out.println(“numeroFloat“ + numeroFloat);
System.out.println(“En bytes son “ + Float.BYTES);
System.out.println(“En bits son “ + Float.SIZE);
System.out.println(“Máximo: “ + Float.MAX_VALUE);
System.out.println(“Máximo: “ + Float.MIN_VALUE);
}
}
Reales – Coma flotante
public class PrimitivosReales{
public static void main(String[] args) {
float numeroFloat = …
float numeroDouble = …
var numeroVar = …
}
}
Booleanos y Caracteres
boolean:
Valor lógico de 1 bit true o false (1 o 0)
char:
Carácter alfanumérico 2 bytes ‘A’, ‘b’, ‘*’ …
Si el valor es un carácter, siempre entre comillas simples (‘)
Para algunos caracteres se puede emplear su código ASCII
‘A’ 65, ‘@’ 64, ‘B’ 66 …
Unicode ‘\u0021’ corresponde a ‘!’
Escape ‘\b’, ‘\n’, ‘\r’…
Booleanos y Caracteres
public class PrimitivosChar {
public static void main(String[] args) {
char caracter = ‘@’; // caracter
System.out.println(“caracter “ + caracter);
char caracter1 = ‘\u0040’
System.out.println(“caracter1 “ + caracter1);
char caracter2 = 64; //ASCII
System.out.println(“caracter2 “ + caracter2);
var caracter3 = ‘A’;
System.out.println(“caracter3 “ + caracter3);
}
}
Booleanos y Caracteres
public class PrimitivosBoolean {
public static void main(String[] args) {
boolean dato = true; // false
System.out.println(“dato “ + dato);
int a = 3;
int b = 5;
dato = a > b;
System.out.println(“dato “ + dato);
dato = (b – a == 1)
System.out.println(“dato “ + dato);
}
}
03
Manejando datos
Sistemas numéricos
Decimal a = 14 c = 254
Binario a = 00001110 c = 11111110
Octal a = 16 c = 376
Hexadecimal a = 0E c = FE
Sistemas numéricos
Notación en Java
Decimal a = 14 c = 254
Binario a = 0b00001110 c = 0b11111110
Octal a = 016 c = 0376
Hexadecimal a = 0x0E c = 0xFE
Sistemas numéricos
public class SistemasNumericos {
public static void main(String[] args) {
int numDecimal = 31;
System.out.println("numDecimal = " + numDecimal);
int numeroBinario = 0b00011111;
System.out.println("numBinario = " + numBinario);
int numOctal = 037;
System.out.println("numOctal = " + numOctal);
int numeroHex = 0x1f;
System.out.println("numHex = " + numHex);
}
}
Conversión numéricos a distintos sistemas
public class ConversionNumeros {
public static void main(String[] args) {
int nDecimal = 31;
System.out.println(“Decimal = " + nDecimal);
System.out.println(“Binario = “ + Integer.toBinaryString(nDecimal));
System.out.println("Octal = " + Integer.toOctalString(nDecimal));
System.out.println("numHex = " + Integer.toHexString(nDecimal));
}
}
Introduciendo datos - Ventanas
import javax.swing.*;
public class ConversionNumeros {
public static void main(String[] args) {
String dato;
dato = JOptionPane.showInputDialog(null, “Intorduce un entero");
int nDecimal = Integer.parseInt(dato);
System.out.println(“Decimal = " + nDecimal);
System.out.println(“Binario = “ + Integer.toBinaryString(nDecimal));
System.out.println("Octal = " + Integer.toOctalString(nDecimal));
System.out.println("numHex = " + Integer.toHexString(nDecimal));
}
}
Introduciendo datos - Consola
Import java.util.Scanner;
public class ConversionNumeros {
public static void main(String[] args) {
String dato;
Scanner entrada = new Scanner(System.in);
System.out.println("Introduce un entero: ");
dato = entrada.nextLine(); // nextInt(); alternativa
int nDecimal = Integer.parseInt(dato);
System.out.println("Decimal = " + nDecimal);
System.out.println("Binario = "+ Integer.toBinaryString(nDecimal));
System.out.println("Octal = " + Integer.toOctalString(nDecimal));
System.out.println("numHex = " + Integer.toHexString(nDecimal));
}
}
Introduciendo datos – Control de errores
public class ConversionNumeros {
public static void main(String[] args) {
String dato;
dato = JOptionPane.showInputDialog(null, “Intorduce un entero");
int nDecimal = 0;
try {
nDecimal = Integer.parseInt(dato);
} catch (NumberFormatException e){
JOptionPane.showMessageDialog(null, “Tiene que ser entero");
main(args);
System.exit(0);
}
…
}
}
04
Tipos no primitivos
Strings
String:
Almacena un secuencia de caracteres Cadenas de texto
Siempre entre comillas dobles (“).
Aunque es no-primitivo, porque se refiere a un objeto, se le
suele considerar como el noveno tipo especial de Java.
Matrices o Arrays
Almacena múltiples valores en una sola variable.
Declaración:
tipo[] nombre = {valor1, valor2, valor3, …};
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
int[] myNum = {10, 20, 30, 40};
Para acceder a un elemento:
nombre[índice]
El primer elemento tiene el índice 0.
Otros tipos no primitivos
Muy pronto los empezarás a utilizar
Clases
Objetos
Interfaces
Enumeradores
…
Fusión de tipos – Type Casting
Asignar un valor a una variable primitiva de otro tipo al declarado.
Widening casting (ensanchamiento). Automáticamente de un
tipo de menor tamaño a otro de mayor tamaño.
byte short char int long float double
Narrowing casting (estrechamiento). Manualmente de un tipo de
mayor tamaño a otro de menor tamaño.
double float long int char short byte
Palabra clave “final”
Se emplea para que nadie (tu mismo incluido) pueda modificar el
valor de una variable una vez declarada.
Crea una constante, una variable de “solo lectura” a la que no se
puede asignar un nuevo valor error.
Declaración:
final tipo nombre = valor;
final float PI = 3.1415929f;