Tema 2 - migueldavidorrico/DAM1K2019 GitHub Wiki

Tema 2: Variables y tipos de datos primitivos

Discutimos lo que es un identificador en Java y los Caracteres válidos de los identificadores en Java.


En clase de Programación de 1º K
  • Los identificadores solo usarán letras de la A a la Z ASCII (no usaremos ñ, ç, é ...)(En algún caso números si se leen bien) y estarán en camelCase, empezando en minúsculas las variables y los métodos y en mayúsculas las clases.
  • Los identificadores serán tan largos como sea necesario para que el nombre asignado tenga pleno sentido.
  • En general, los booleanos serán algo como esMayorDeEdad o tieneCarnetDeConducir.
  • Como los identificadores se escribirán en español, no debemos tener conflictos con las palabras reservadas, solo con final.

Comentarios en Java

Tenemos comentarios de una sola línea 
//Todo lo que va después de las barras es comentario
/* y comentarios multilínea
todo lo va entre barra asterisco 
y asterisco barra es comentario*/
/** Esto son comentarios 
JavaDoc 
(Se ven más adelante)*/

Tipos de datos

Hemos establecido lo que son los Tipos de Datos


En clase de Programación de 1º K
  • Para los valores que sean enteros, usaremos el tipo int (en casos excepcionales con cantidades exageradamente grandes, el long)
  • Para los valores con decimales (reales) usaremos el tipo double.
  • Favoreceremos el uso de int cuando sea posible: Al guardar monedas usaremos int para guardar los céntimos. En el caso de la altura usaremos int guardando los centímetros, etc.

Constantes

Una constante es una variable con valor incial que no cambiará su valor a lo largo de la ejecución del programa. Se escriben al principio de la clase con todo el nombre en mayúsculas y en Snake_case (separadas las palabras por subrayado _). Sirven para no tener números mágicos distribuidos por el código. Sirva como ejemplo el siguiente programa y siempre se definirán como public static final ....

Operadores de Java

Operadores aritméticos

Suma: + Si se usa entre Strings significa concatenación de Strings (Juntarlos) Hay que entender qué imprimen los siguientes ejemplos y por qué:

int a=5;
int b=7;
System.out.println("Números: "+a+" y "+b+" dan: "+a+b);
System.out.println("Números: "+a+" y "+b+" dan: "+(a+b));
String cadena=a; //Error de compilación
String cadena=""+a;

La suma también se puede usar con char (es un tipo de dato entero)

Los operadores convierten los datos a la mayor precisión para obtener los resultados:

4+5.0 --> double

'y'+3 --> int

La resta y la multiplicación se usan normalmente. Con la división hay que llevar cuidado porque si ponemos dos enteros, realiza la división entera (5/2 da 2). Si queremos forzar la división flotante, debemos especificarlo (5/2.0 por ejemplo o var1/(double)var2)

Operador módulo (%)

Este operador devuelve el resto de la división entera de sus operandos, es decir 17 dividido entre 4 da 4 y sobra 1. Para obtener esos valores haríamos 17/4 que da 4 y 17%4 que da 1 En programación usaremos el módulo para:

  • Obtener el resto de una división
  • Comprobar la divisibilidad de un número respecto a otro: a es divisible entre b si a%b==0. Especialmente saber si un número es par (es par si numero%2==0)
  • Hacer cuentas 'circulares': Lo podemos pensar como un reloj, si a una hora le sumamos otra hora, la hora final estará entre las 0 horas y las 11 horas. Eso es el módulo 12
  • Cambiar de unidades y obtener dígitos sueltos de un numero, Ejemplo para pasar de segundos a minutos, se divide por 60 (eso son los minutos) y el módulo 60 serán los segundos restantes.

Operadores relaciones

Devuelven un booleano. Lo único a destacar es el operador != (distinto), el operador == (igual que) y que hay que repetir los operadores todas las veces que se usen, por ejemplo en matemáticas se escribe 5<=x<=8 pero en programación hay que escribir 5<=x && x<=8

Operadores lógicos

También devuelven un booleano pero operan a su vez con booleanos. Hay 3:

  • && (AND) Es verdad si todos los operandos son verdad
  • || (OR) Es verdad si alguno de los operandos (o todos) son verdad
  • ! Niega el operando

Debemos intentar poner buenos nombres a las variables booleanas para que las expresiones con operadores lógcos se puedan leer fácilmente. Si queremos representar que una persona puede pilotar un helicóptero si tiene carnét, si tiene un helicóptero y si tiene permiso de las autoridades, escribiremos boolean puedePilotar=tieneCarnet && tieneHelicoptero && tienePermiso

Operador incremento y decremento

La operación de sumar uno a una variable (si a vale 5 que valga 6) es tan común en programación que se usa una abreviatura ++ y -- (incremento y decremento respectivamente) var1++; es equivalente a var=var+1; preincremento (++var) es incrementar el valor y usarlo y postincremento es usar el valor y después incrementarlo (var++) Es mejor no mezclarlo y si se tiene dudas, separarlos en una instrucción. Hay que entender lo que imprime lo siguiente:

int a=5;
System.out.println(a++);
System.out.println(++a);
System.out.println(a);

Operadores de asignación

Sirven para abreviar operaciones muy comunes como sumar una cantidad a una variable o restársela. De esta forma a+=30; lo que hace es sumarle a lo que tenga a 30. Idem para a-=60; También se pueden usar otros (*=, /=, etc) pero mejor no usarlos. Cuidado con el += con Strings, lo que hace es añadir al String lo que aparece a la derecha.

Operador ternario (Condicional)

Mejor no abusar de él