Anda di halaman 1dari 4

Captulo 5

Operadores y expresiones
Los programas Java constan de datos, Sentencias de programas y expresiones. Una expresin es,
normalmente una ecuacin matemtica, tal como 3*x+5*z. En esta expresin, los smbolos ms y
producto (+,*) son los operadores de suma y producto, los nmeros 3 y 5, y las variables x, z se
llaman operandos. En sntesis, una expresin es una secuencia de operaciones y operandos que
especifca un clculo.
Cundo se utiliza + entre nmeros o variables se denomina operador binario, debido a que el
operador + suma dos nmeros. El signo menos (-) es el operador unitario menos. Java soporta un
conjunto de operadores unitarios, binarios y de otros tipos.
Una expresin es un elemento de un programa que toma un valor. En algunos casos puede
tambin realizar la operacin. Las expresiones pueden ser valores constantes o variables simples,
tales como 25 o Z; pueden ser valores o variables combinadas con operadores (a++, m==n, etc.);
o bien pueden ser valores combinados con mtodos tales como Math.cos (1.5).
Operador de Asignacin:
El operador = asigna el valor de la expresin derecha a la variable situada a su izquierda
(cdigo = 3421)
Los operadores aritmticos:
Los operadores aritmticos sirven para realizar operaciones aritmticas bsicas. los operadores
aritmticos Java siguen las reglas algebraicas tpicas de jerarqua o prioridad. Estas reglas
especifican la procedencia de las operaciones aritmticas. En Java como en la mayora de
lenguajes, las expresiones interiores a parntesis se evalan primero; a continuacin, se realizan
los operadores unitarios, seguidos por los operadores de multiplicacin, divisin, resto, suma ,
resta.
Asociatividad:
La asociatividad determina el orden en que se agrupan los operadores de igual a prioridad; es
decir, de izquierda a derecha o de derecha a izquierda.
Uso de parntesis:
Los parntesis se pueden utilizar para cambiar el orden usual de evaluacin de una expresin
determinada por su prioridad y asociatividad. Las sobrexpresiones entre parntesis se evalan en
primer lugar segn el modo estndar y los resultados se combinan para evaluar la expresin
completa. Si los parntesis estn <<anidados>>-- es decir, un conjunto de parntesis contenido en
otrose ejecutan en primer lugar los parntesis ms internos, se debe tener cuidado con la
escritura de expresiones que contengan dos o ms operaciones para asegurase de que se evalen
en el orden previsto. Incluso aunque no se requieran parntesis, deben utilizarse para clarificar el
orden concebido de evaluacin y escribir expresiones complicadas en trminos de expresiones
ms simples. Es importante, sin embargo, qu los parntesis estn equilibradoscada parntesis
a la izquierda, tiene un correspondiente parntesis a la derecha que aparece posteriormente en la
expresin--, ya que si existen parntesis desequilibrados se producir un error de compilacin.
Operadores de incrementacin y decrementacin:
De las muchas caractersticas de Java heredadas de C++ y de C, una de las mas tiles son los
operadores de incremento ++ y decremento --. Los operadores ++ y --, denominados de
incrementacin y decrementacin, suman o restan 1 a su argumento, respectivamente, cada vez
que se aplican a una variable.
Si los operadores ++ y estn prefijos, la operacin de incremento se efecta antes que la
operacin de asignacin; si los operadores ++ y estn de sufijos, la asignacin se efecta en
primer lugar y la incrementacin o decrementacin a continuacin.
Operadores Relacionales:
En Java, el tipo de datos boolean tiene dos valores: true y false. Una expresin booleana es, por
consiguiente, una secuencia de operandos y operadores que se combinan para producir uno de los
valores true y false. En Java es errneo utilizar el valor entero 0 como false y distinto de cero como
true.
Los operadores relacionales se usan normalmente en sentencias de seleccin (if) o de iteracin
(while, for), que sirven para comprobar una condicin. Utilizando operadores relacionales se
realizan operaciones de igualdad, desigualdad, y diferencias relativas.
Operadores Lgicos:
Adems de los operadores matemticos, Java tiene tambin operadores lgicos. Estos operadores
se utilizan con expresiones para devolver un valor verdadero (true) o un valor falso (false). Los
operadores lgicos se denominan tambin operadores booleanos, en honor a George Boole,
creador del lgebra de Boole.
Los operadores lgicos de Java son: not (!), and (&&), or (l l) y or exclusivo ( ^ ). El operador lgico
! (not, no) produce falso si sus operando es verdadero y viceversa. El operador lgico && (and, y)
produce verdadero solo si ambos operandos son verdadero; si cualquiera de los operandos es
falso produce falso. El operador lgico l l (or, o) produce verdadero si cualquiera de los operandos
es verdadero y produce falso slo si ambos operandos son falsos.
El operador lgico ^ (or exclusivo) produce verdadero si ambos operandos son distintos
(verdadero-falso, falso-verdadero) y produce falso slo si ambos operandos son iguales
(verdadero-verdadero, falso-falso). Adems hay que considerar que Java permite utilizar &, l
como operadores and y or respectivamente, con el mismo significado que el ya expuesto, salvo en
lo relativo a la evaluacin en cortocircuito.
El operador ^ tiene mayor prioridad que ! , que a su vez tiene prioridad ms alta que &&, y este a
su vez tiene mayor prioridad que l l. La asociatividad es de izquierda a derecha.
Evaluacin en Cortocircuito:
En Java, los operandos de la izquierda de && y l l se evalan siempre en primer lugar; si el valor del
operando de la izquierda determina de forma inequvoca el valor de la expresin, el operando
derecho no se evala. Esto significa que si el operando de la izquierda de && es falso o el de l l es
verdadero, el operando de la derecha no se evala. Esta propiedad se denomina evaluacin en
cortocircuito y se debe a que si p es falso, la condicin p && q es falsa, con independencia del
valor de q, y de este modo Java no evala q. De modo similar, si p es verdadera la condicin p l l q
es verdadera, con independencia del valor de q.
Operadores l y &:
Java permite utilizar los operadores l y & con operandos de tipo boolean. Se corresponden con el
operador or ( l l ) y and (&&) respectivamente, con una diferencia importante: no evalan en
cortocircuito, sino que siempre son evaluados los dos operandos.
Asignaciones Booleanas (lgicas):
Las sentencias de asignacin se pueden escribir de modo que se puede dar un valor de tipo
boolean a una variable del mismo tipo.
Operaciones de manipulacin de bits:
Los operadores de manipulacin o tratamiento de bits (bitswise)ejecutan operaciones lgicas
sobre cada uno de los bits de los operandos. Estas operaciones son comparables con eficiencia y
en velocidad a sus equivalentes en lenguaje ensamblador.
Operadores de Asignacin Adicionales:
Al igual que los operadores aritmticos, los operadores de asignacin abreviados estn disponibles
tambin para operadores de manipulacin de bits.
Operadores de Desplazamiento de bits (>>, >>>, <<)
Estos operadores efectan un desplazamiento a la derecha (>>, >>>) o a la izquierda (<<) de n
posiciones de los bits del operando, siendo n un nmero entero. El nmero de bits desplazados
depende del valor a la derecha del operador.


Operador Condicional:
El operador condicional, ? : , es un operador tenario que devuelve el resultado cuyo valor depende
de la condicin comprobada. Tiene asociatividad a derechas. Al ser un operador tenario requiere
tres operandos. El operador condicional se utiliza para reemplazar a la sentencia if-else lgica en
algunas situaciones.

Operador Coma:
El operador coma permite combinar dos o ms expresiones separadas por comas en una sola
lnea. Se evala primero la expresin de la izquierda y luego las restantes expresiones de izquierda
a derecha.
Java utiliza como operadores la seleccin de elementos de un objeto, la llamada a un mtodo y el
acceso a un elemento de un array.
El operador punto (.) permite acceder a un miembro de un objeto, siempre que la visibilidad del
miembro lo permita.
El operador ( ) es el operador de llamada a objetos. Sirve para encerrar los argumentos del mtodo
o funcin.
El operador [ ] sirve para dimensionar los arrays y designar un elemento de un array.
El operador Instanceof tiene dos operandos, el primero ha de ser un objeto y el segundo un tipo
de datos, una clase.
Operador + Con cadenas de caracteres: Para facilitar el manejo de cadenas, y sobre todo para que
la salida de datos por un dispositivo sea ms amigable, Java ha redefinido el operador suma ( + )
para concatenar cadenas.
Prioridad y Asociatividad:
La prioridad o precedencia de operadores determina el orden en el que se aplican los operadores
a un valor. Los operadores Java vienen en una tabla con dieciocho grupos. Los operadores del
grupo 1 tienen mayor prioridad que los del grupo 2, y as sucesivamente.