Operadores Java
-
Upload
raphael-marques -
Category
Technology
-
view
14.957 -
download
3
description
Transcript of Operadores Java
![Page 1: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/1.jpg)
Operadores Java
Raphael Marques
![Page 2: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/2.jpg)
Objetivo• Operadores de atribuição:
=, +=, -=, *=, /=• Operadores aritméticos:
+, -, *, /, %, ++, --• Operadores relacionais:
<, <=, >, >=, ==, !=• Operador instanceof• Operadores lógicos:
&, |, ^, !, &&, ||• Operador condicional:
? :
![Page 3: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/3.jpg)
Objetivo
• Não é assunto da prova:– Operadores de deslocamento de bits– Operadores binários (bit-a-bit)– Complemento de 2– Divisão por zero
![Page 4: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/4.jpg)
Operador de atribuição
• Para números, o tamanho importa.int x = 5f; ERRObyte b = 500; ERRO
• Para referências, o “tipo” importa.Integer y = “5”; ERRO
![Page 5: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/5.jpg)
Operador de atribuição
boolean b = false;if(b = true)
System.out.println("SIM");else
System.out.println("NAO");
Qual a saída?
![Page 6: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/6.jpg)
Operador de atribuição
boolean b = false;if(b = true)
System.out.println("SIM");else
System.out.println("NAO");
Qual a saída? → "SIM"
![Page 7: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/7.jpg)
Operador de atribuição
boolean b = false;if(b = true)
→ (b = true) retorna o valor que é atribuído à b que é um booleano
![Page 8: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/8.jpg)
Operador de atribuição
int x = 0;if(x = 1)
System.out.println("SIM");else
System.out.println("NAO");
Qual a saída?
![Page 9: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/9.jpg)
Operador de atribuição
int x = 0;if(x = 1) → ILEGAL
System.out.println("SIM");else
System.out.println("NAO");
Qual a saída?
![Page 10: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/10.jpg)
Operador de atribuição
int x = 0;if(x = 1)
→ (x = 1) retorna o valor que é atribuído á x que é um inteiro, por isso não pode ser colocado como condição de um if
![Page 11: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/11.jpg)
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;• X %= 5; → NÃO CAI NA PROVA
+= -= *= /=
![Page 12: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/12.jpg)
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; ERRADOx *= 2 + 5; → x = x * (2 + 5); CERTO
![Page 13: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/13.jpg)
Operadores relacionais
• Retornam sempre um valor booleano.
• <, <=, >, >=– apenas tipos numéricos
• ==, !=– todos tipos inclusive referência
< <= > >= == !=
![Page 14: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/14.jpg)
Operadores de igualdade
• Comparam números, booleanos e referências
• Os operandos devem ser compatíveis
== !=
![Page 15: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/15.jpg)
Operadores de igualdade
if(false == 'a'){} ILEGAL
if(65 == 'A'){} LEGAL
if(1 == "A"){} ILEGAL
if(1 == new Integer(1)){} LEGAL
![Page 16: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/16.jpg)
Operadores de igualdade
if(65 == 'A'){}
→ um char ('A') é um número e portanto é compativel com int (65)
if(1 == new Integer(1)){}→ O objeto Integer é convertido para int
![Page 17: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/17.jpg)
Operadores de igualdade
JButton a = new JButton("Exit");JButton b = new JButton("Exit");JButton c = a;System.out.println(a == b);System.out.println(a == c);
Qual a saída?
![Page 18: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/18.jpg)
Operadores de igualdade
JButton a = new JButton("Exit");JButton b = new JButton("Exit");JButton c = a;System.out.println(a == b); → falseSystem.out.println(a == c); → true
Qual a saída?
![Page 19: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/19.jpg)
Operadores de igualdade
Integer a = 10;Integer b = 10;
System.out.println(a==b);
Qual a saída?
![Page 20: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/20.jpg)
Operadores de igualdade
Integer a = 10;Integer b = 10;
System.out.println(a==b); → true
Qual a saída?
![Page 21: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/21.jpg)
Operadores de igualdade
Integer a = 10;Integer b = 10;
System.out.println(a==b); → true→ As classes (Integer, Byte, Short, Character e Long) apontam para a mesma referência quanto recebem um valor até 127 por atribuição.
![Page 22: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/22.jpg)
Operadores de igualdade
Integer a = new Integer(10);Integer b = new Integer(10);
System.out.println(a==b); → false
→ Usar new garante a criação de objetos diferentes
![Page 23: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/23.jpg)
Operadores de igualdade
Integer a = new Integer(5) + 5;Integer b = 10;
System.out.println(a==b); → true
→ Em operações que resultam em valores até 127 também são utilizadas as referências constantes
![Page 24: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/24.jpg)
Operadores de igualdade
enum Color {RED,GREEN,BLUE}...Color a = Color.RED;Color b = Color.RED:
System.out.println(a==b);→ true
→ Enums são objetos, mas cada valor de um enum é uma constante (public static final)
![Page 25: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/25.jpg)
Operador instanceof
• Verifica se o OBJETO referenciado pelo lado esquerdo “É UM” objeto do tipo do lado direito.
• Utilizado apenas com referências• Também funciona com interfaces• Retorna um booleano• Ex: referencia instanceof Tipo
![Page 26: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/26.jpg)
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); → trueSystem.out.println(a instanceof Baleia); →
false
![Page 27: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/27.jpg)
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); → trueSystem.out.println(b instanceof Baleia); → true
![Page 28: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/28.jpg)
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); → trueSystem.out.println(c instanceof Baleia); → true
![Page 29: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/29.jpg)
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
![Page 30: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/30.jpg)
Operador instanceof
interface Animal { }class Manifero implements Animal { }class Baleia extends Mamifero { }...Baleia b = new Baleia();...println(b instanceof Animal); → true
![Page 31: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/31.jpg)
Operadores aritméticos
• + adição• - subtração• * multiplicação• / divisão• % resto
...println(17 % 5); → 2
...println(17.0 % 5.0); → 2.0
![Page 32: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/32.jpg)
Operadores aritméticos
int a = 8;int b = 6;
int c = a + b;
![Page 33: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/33.jpg)
Operadores aritméticos
short a = 8;short b = 6;
short c = a + b; → ILEGAL
![Page 34: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/34.jpg)
Operadores aritméticos
short c = a + b; → ILEGAL
→ Não existe os operadores aritméticos para tipos menores que int → Os valores são automaticamente convertidos para int, e por isso a expressão não pode ser atribuída a um short
![Page 35: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/35.jpg)
Operadores aritméticos
Solução:
short a = 8;short b = 6;
short c = a;c += b; → LEGAL
![Page 36: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/36.jpg)
Concatenação de Strings5 + 4 + “x” → “9x” ERRO???
5 + (4 + “x”) → “54x”
“x” + 5 + 4 → “x54” ERRO???
“x” + (5 + 4) → “x9”
String s = “alguma”;s += “coisa”; → “algumacoisa”
![Page 37: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/37.jpg)
Incremento e Decremento
int x = 5;...println(x++); → 5...println(x); → 6...println(++x); → 7...println(x); → 7
...println(x--); → 7
...println(x); → 6
![Page 38: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/38.jpg)
Operador condicional
hora < 12 ? "M" : "T"
(hora < 12) ? "M" : "T"
hora < 12 ? "M" : hora < 18 ? "T" : "N“
hora > 12 ? hora < 18 ? "T" : "N" : "M”
![Page 39: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/39.jpg)
Operador condicional
→O aninhamento é feito igual if-else: cada : casa com o ? anterior mais próximo que ainda não possua um :
hora < 12 ? "M" : hora < 18 ? "T" : "N“
hora > 12 ? hora < 18 ? "T" : "N" : "M”
![Page 40: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/40.jpg)
Operadores lógicos
• Operandos são expressões booleanas
• O resultado é um booleano
• Na prova não cai operadores binários!!!
& | ^ ! && ||
![Page 41: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/41.jpg)
Operadores lógicos
• Operadores com curto-circuito– && e ||
• Dependendo do valor do 1º operando, o segundo operando pode não ser avaliadoif( true || ?????? ){}if( false && ??????){}
• Cuidado com incrementos/decrementos no segundo operador.
![Page 42: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/42.jpg)
Operadores lógicos
• Operadores sem curto-circuito– & e |
• Os dois operando sempre serão avaliados
![Page 43: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/43.jpg)
Operadores lógicos
• XOR (OU exclusivo) ^– Retorna true se APENAS um operando é true– Os dois operandos sempre são avaliados
• Negação !true → falsefalse → true
![Page 44: Operadores Java](https://reader034.fdocument.pub/reader034/viewer/2022052215/5572c856d8b42abb378b4bd0/html5/thumbnails/44.jpg)
THE END