ed-b1 instalación y uso de entornos

UT 4: el lenguaje java

5.Operadores

eugeniaperez.es

5. Operadores

operadores 

Descarga el proyecto del repositorio  ED.UT4.E/S.Operadores:

https://eugenia_perez@bitbucket.org/eugenia_perez/ed.ut4.e-s.operadores.git

  • Usuario: entornos_desarrollo
  • Password: Entornos

 

eugeniaperez.es

UT 4: el lenguaje java

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores aritméticos

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores aritméticos

Obviamente podemos complicar las operaciones aritméticas tanto como haga falta, siendo recomendable utilizar paréntesis para agrupar las operaciones y hacer más clara la interpretación de cálculos elaborados:

eugeniaperez.es

(((4 / 1) * number ) + a ) % (1000 * b)
4 / 1 * number  + a  % 1000 * b

Sin paréntesis, es

necesario tener en cuanto la precedencia

de operadores.

UT 4: EL LENGUAJE JAVA

5. Operadores

precedencia de operadores

 

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

reglas de promoción de primitivos

Cuando tenemos valores de determinados tipos con los que se hacen operaciones, el tipo puede se debe promocionar para que todos acaben con el mismo tipo:

1.Si son dos tipos java distintos (long y short por ejemplo), los valores se convierten al tipo más grande:

eugeniaperez.es

453234213L + 56;  // 56 convierte en long

UT 4: EL LENGUAJE JAVA

5. Operadores

reglas de promoción de primitivos

2.Si uno de los valores es un entero y otro con decimales, el entero se convierte o promociona a valor con decimales.

 

3. Las primitivas enteras pequeñas: byte, short y char se promocionan automáticamente a int en cuanto se hace una operación con ellas.

 

eugeniaperez.es

42 + 15.5 // 42 pasa a ser 42.0f

UT 4: EL LENGUAJE JAVA

5. Operadores

reglas de promoción de primitivos

4.Una vez se promocionan todos los valores, el resultado pasa a ser el del tipo promocionado:

 

Por eso hay que tener cuidado ya que esto no compilaría:

 

 

eugeniaperez.es

3L + 4 + 10  // 17L
int a = 5;
long b = 5;
a = a + b; // ERROR DE COMPILACIÓN

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de asignación

En ocasiones se lleva a cabo una operación aritmética con una variable y el resultado se almacena en la misma variable:

 

Java nos permite abreviar esa expresión de la siguiente manera:

 

 

eugeniaperez.es

number = number + 3;
number += 3;

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de asignación

Igual que la suma, tenemos un operador abreviado para cada operación aritmética:

  • +=
  • -=
  • *=
  • /=
  • %=

 

 

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de asignación

En la NOTA anterior indicábamos que esto daría un error de compilación:

  

Usando un operador de asignación solventamos el problema, ya que este se encargaría de hacer una conversión o cast de long a int:

 

 

 

eugeniaperez.es

int a = 5;
long b = 5;
a = a + b; // ERROR DE COMPILACIÓN
int a = 5;
long b = 5;
a += b; // OK

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de comparación

Los operadores de comparación o relational operators nos permiten hacer comparaciones entre literales o variables y su resultado es un booleano: true o false. Por ejemplo:

 

El valor almacenado en la variable será true

 

 

 

eugeniaperez.es

boolean isBigger = 5 > 3; 

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de comparación

Operadores disponibles en Java:

 

 

 

 

 

eugeniaperez.es

Entre ellos se suelen utilizar operadores booleanos: &, |

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de comparación

Precauciones:

Es frecuente liarse y utilizar un único símbolo = con el propósito de hacer una comparación. Sintácticamente es correcto pero lo que hace eso es una asignación, no una comparación. Los resultados no son los esperados.

 

 

 

 

 

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de comparación

Precauciones:

Para las cadenas o String, podemos comparar con == o !=, aunque también con el método toEquals():

 

 

 

 

 

eugeniaperez.es

String name = "Eugenia";
boolean isTheSame = name.isEquals(“Eugenia”);
isTheSame  = (name == name);

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de comparación

Precauciones:

También resulta interesante saber que:

 

Porque el operador == provoca que el 5 sea promocionado a float y por tanto terminan siendo iguales.

 

 

 

 

 

eugeniaperez.es

5 == 5.0 // true

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores booleanos

Estos son operadores que nos permiten hacer operaciones con valores booleanos, true/false. Son algo básico en cualquier lenguaje de programación y en Java los tenemos de dos maneras con shortcircuit o sin él.

Esto significa si se evalúa toda la condición o no.

 

 

 

 

 

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores booleanos

 

 

 

 

 

 

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores booleanos

 

 

 

 

 

 

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores booleanos con shortcircuit

Si bien ahorran tiempo de procesador mucho ojo al usar estos operadores, ya que al utilizarlos puede que ciertas expresiones queden sin evaluar. Por tanto los resultados no serán los esperados según las condiciones.

 

 

 

 

 

 

 

eugeniaperez.es

int a = 5;
int b = 0;
boolean result = (a > 6) && (b++ > 0);

(b++ > 0) NO se evalúa, es decir, NO se ejecuta.

Por tanto b++ NO se incrementa.

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de bits

Son poco frecuentes. Operan a nivel de bit:

 

 

 

 

 

 

 

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de strings

Con Strings podemos llevar a cabo una operación básica: la concatenación, que consiste simplemente en unir un String con otro: +

 

 

 

 

 

 

 

eugeniaperez.es

String name = “Eugenia “;
String completeName = name + “Pérez”     // “Eugenia Pérez”

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de strings

Al concatenar podemos usar tanto variables como literales. Si concatenamos cadenas con otro tipo de variables se produce una cadena:

 

 

 

 

 

 

 

eugeniaperez.es

int result = 42;
System.out.println(“El resultado es: “ + result);   // “El resultado es: 42”

UT 4: EL LENGUAJE JAVA

5. Operadores

operadores de strings

De hecho una forma simple de convertir cualquier variable en String de forma implícita es concatenando un String vacío:

 

 

Sin embargo, ¡cuidado!:

 

 

 

 

 

 

 

eugeniaperez.es

int result = 42;
String mensaje = result + "";
System.out.println(“El resultado es: “ + result + 6);  // “El resultado es: 48”

Se podría utilizar StringBuilder...

UT 4: EL LENGUAJE JAVA

5. Operadores

inmutabilidad de strings

Una vez que se declara un String ya no se puede modificar: ni se puede agrandar, ni empequeñecer.

En todo caso lo que podemos hacer es machacar el String que contiene una variable con un nuevo String:

 

 

 

eugeniaperez.es

String mensaje = “”;				// mensaje = “”
mensaje = mensaje + “ más texto”;		// mensaje = “ más texto”
mensaje = mensaje + “, y más texto”		// mensaje = “ más texto, y más texto”

UT 4: EL LENGUAJE JAVA

5. Operadores

inmutabilidad de strings

Si utilizamos el método de concatenación del propio String NO modificaremos el propio String, pero si podemos guardar su valor en otra variable:

 

 

 

eugeniaperez.es

String mensaje1 = “Say my name”;
String mensaje2;
mensaje2 = mensaje1.concat(“: Heisenberg”);
// mensaje2 = “Say my name: Heisenberg”
// mensaje1 = “Say my name”

UT 4: EL LENGUAJE JAVA

5. Operadores

métodos de strings

Siendo los Strings objetos, disponen de una serie de métodos útiles que conviene conocer. Supongamos que tenemos el siguiente String:

A continuación te pongo los métodos y lo que obtenemos. Recuerda que los Strings son inmutables, por tanto estos métodos devuelven un nuevo String y NO modifican el propio String a los que se aplican.

 

 

 

eugeniaperez.es

String name = “Cuatrovientos”;

UT 4: EL LENGUAJE JAVA

5. Operadores

métodos de strings

 

 

 

 

eugeniaperez.es

String name = "cuatrovientos";
name.replace("cuatro", "tres");
//No estoy modificando la variable name
System.out.println(name.replace("cuatro", "tres"));
System.out.println(name);
//Para modificarla, tengo que volver a asignarle la operación
name = name.replace("cuatro", "tres");
System.out.println(name);

UT 4: EL LENGUAJE JAVA

5. Operadores

métodos de strings

Estos métodos se pueden encadenar, lo cual resulta muy práctico para aplicar más de un metodo al mismo String en una sola línea:

 

 

 

 

eugeniaperez.es

String name = ”  Cuatrovientos   ”;
name.trim().toLowerCase().substring(0,5).equals(“cuatro”)   // true

UT 4: EL LENGUAJE JAVA

5. Operadores

operador ternario

También conocido como elvis operator, su formato es el siguiente:

Generalmente se utiliza para asignar un valor un otro a una variable dependiendo de la condición del operador. Por ejemplo:

 

 

 

 

eugeniaperez.es

int b = 4
int a = 5;
int x = (a > b)? 42 : 0;  
condición ? expresión1 : expresión2

x será 42, ya que a>b 

UT 4: lenguaje java

5. Operadores

REpasa las clases del proyecto operadores. 

realiza las actividades de la pág. 50:

  • Ejercicios 1 -8
  •  

eugeniaperez.es

5. Operadores

By eugenia_perez

5. Operadores

  • 1,280