3. Objetivo
• Não é assunto da prova:
– Operadores de deslocamento de bits
– Operadores binários (bit-a-bit)
– Complemento de 2
– Divisão por zero
4. Operador de atribuição
• Para números, o tamanho importa.
int x = 5f; ERRO
byte b = 500; ERRO
• Para referências, o “tipo” importa.
Integer y = “5”; ERRO
5. Operador de atribuição
boolean b = false;
if(b = true)
System.out.println(quot;SIMquot;);
else
System.out.println(quot;NAOquot;);
Qual a saída?
6. Operador de atribuição
boolean b = false;
if(b = true)
System.out.println(quot;SIMquot;);
else
System.out.println(quot;NAOquot;);
Qual a saída? → quot;SIMquot;
7. Operador de atribuição
int x = 0;
if(x = 1)
System.out.println(quot;SIMquot;);
else
System.out.println(quot;NAOquot;);
Qual a saída?
8. Operador de atribuição
int x = 0;
if(x = 1) → ILEGAL
System.out.println(quot;SIMquot;);
else
System.out.println(quot;NAOquot;);
Qual a saída?
9. Operadores de atribuição compostos
+= -= *= /=
• x += 5; → x = x + 5;
• x -= 5; → x = x - 5;
• x *= 5; → x = x * 5;
• x /= 5; → x = x / 5;
10. Operadores de atribuição compostos
• Atualmente a prova não cobra muita
precedência de operadores!
x = y++ + ++x/z;
• Em alguns casos sim:
x *= 2 + 5; → x = x * 2 + 5;
11. Operadores de atribuição compostos
• Atualmente a prova não cobra muito
precedência de operadores!
x = y++ + ++x/z;
• Em alguns casos sim:
x *= 2 + 5; → x = x * 2 + 5; ERRADO
x *= 2 + 5; → x = x * (2 + 5); CERTO
12. Operadores relacionais
< <= > >= == !=
• Retornam sempre um valor booleano.
• <, <=, >, >=
– apenas tipos numéricos
• ==, !=
– todos tipos inclusive referência
13. Operadores de igualdade
== !=
• Comparam números, booleanos e referências
• Os operandos devem ser compatíveis
15. Operadores de igualdade
JButton a = new JButton(quot;Exitquot;);
JButton b = new JButton(quot;Exitquot;);
JButton c = a;
System.out.println(a == b);
System.out.println(a == c);
Qual a saída?
16. Operadores de igualdade
JButton a = new JButton(quot;Exitquot;);
JButton b = new JButton(quot;Exitquot;);
JButton c = a;
System.out.println(a == b); → false
System.out.println(a == c); → true
Qual a saída?
21. Operadores de igualdade
enum Color {RED,GREEN,BLUE}
...
Color a = Color.RED;
Color b = Color.RED:
System.out.println(a==b);
Qual a saída?
22. Operadores de igualdade
enum Color {RED,GREEN,BLUE}
...
Color a = Color.RED;
Color b = Color.RED:
System.out.println(a==b); → true
Qual a saída?
23. Operador instanceof
• Verifica se o OBJETO referenciado pelo lado
esquerdo “É UM” objeto do tipo do lado
direito.
• Utilizado apenas com referências
• Retorna um booleano
• Ex: referencia instanceof Tipo
24. Operador instanceof
class Animal { }
class Baleia extends Animal { }
...
Animal a = new Animal();
Baleia b = new Baleia();
Object c = new Baleia();
...
System.out.println(a instanceof Animal); → true
System.out.println(a instanceof Baleia); → false
25. Operador instanceof
class Animal { }
class Baleia extends Animal { }
...
Animal a = new Animal();
Baleia b = new Baleia();
Object c = new Baleia();
...
System.out.println(b instanceof Animal); → true
System.out.println(b instanceof Baleia); → true
26. Operador instanceof
class Animal { }
class Baleia extends Animal { }
...
Animal a = new Animal();
Baleia b = new Baleia();
Object c = new Baleia();
...
System.out.println(c instanceof Animal); → true
System.out.println(c instanceof Baleia); → true
27. Operador instanceof
class A { }
...
A a = new A();
...
...println(“x” instanceof A); ILEGAL
...println(a instanceof Object); SEMPRE TRUE
...println(array instanceof Object); SEMPRE TRUE
...println(null instanceof A); SEMPRE FALSE
28. Operador instanceof
interface Animal { }
class Manifero implements Animal { }
class Baleia extends Mamifero { }
...
Baleia b = new Baleia();
...println(b instanceof Animal); → true
34. Incremento e Decremento
int x = 5;
...println(x++); → 5
...println(x); → 6
...println(++x); → 7
...println(x); → 7
...println(x--); → 7
...println(x); → 6
35. Operador condicional
hora < 12 ? quot;Mquot; : quot;Tquot;
(hora < 12) ? quot;Mquot; : quot;Tquot;
hora < 12 ? quot;Mquot; : hora < 18 ? quot;Tquot; : quot;N“
hora > 12 ? hora < 18 ? quot;Tquot; : quot;Nquot; : quot;M”
36. Operador condicional
hora < 12 ? quot;Mquot; : quot;Tquot;
(hora < 12) ? quot;Mquot; : quot;Tquot;
hora < 12 ? quot;Mquot; : hora < 18 ? quot;Tquot; : quot;Nquot;
hora > 12 ? hora < 18 ? quot;Tquot; : quot;Nquot; : quot;Mquot;
37. Operadores lógicos
& | ^ ! && ||
• Operandos são expressões booleanas
• O resultado é um booleano
• Na prova não cai operadores binários!!!
38. Operadores lógicos
• Operadores com curto-circuito
– && e ||
• Dependendo do valor do 1º operando, o
segundo operando pode não ser avaliado
if( true || ?????? ){}
if( false && ??????){}
40. Operadores lógicos
• XOR (OU exclusivo) ^
– Retorna true se APENAS um operando é true
– Os dois operandos sempre são avaliados
• Negação !
true → false
false → true