Your SlideShare is downloading. ×

Operadores Java

14,752

Published on

Slides apresentado para o grupo de estudos da UFPB para a certificação java (SCJP). São tratados os operadores: compostos, aritméticos, lógicos, relacionais, instanceof, condicional

Slides apresentado para o grupo de estudos da UFPB para a certificação java (SCJP). São tratados os operadores: compostos, aritméticos, lógicos, relacionais, instanceof, condicional

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
14,752
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
168
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Operadores Java Raphael Marques
  • 2. Objetivo • Operadores de atribuição: =, +=, -=, *=, /= • Operadores aritméticos: +, -, *, /, %, ++, -- • Operadores relacionais: <, <=, >, >=, ==, != • Operador instanceof • Operadores lógicos: &, |, ^, !, &&, || • Operador condicional: ?:
  • 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 boolean b = false; if(b = true) → (b = true) retorna o valor que é atribuído à b que é um booleano
  • 8. 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?
  • 9. 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?
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Operadores relacionais < <= > >= == != • Retornam sempre um valor booleano. • <, <=, >, >= – apenas tipos numéricos • ==, != – todos tipos inclusive referência
  • 14. Operadores de igualdade == != • Comparam números, booleanos e referências • Os operandos devem ser compatíveis
  • 15. Operadores de igualdade if(false == 'a'){} ILEGAL if(65 == 'A'){} LEGAL if(1 == quot;Aquot;){} ILEGAL if(1 == new Integer(1)){} LEGAL
  • 16. 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
  • 17. 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?
  • 18. 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?
  • 19. Operadores de igualdade Integer a = 10; Integer b = 10; System.out.println(a==b); Qual a saída?
  • 20. Operadores de igualdade Integer a = 10; Integer b = 10; System.out.println(a==b); → true Qual a saída?
  • 21. 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.
  • 22. 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
  • 23. 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
  • 24. 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)
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. Operador instanceof interface Animal { } class Manifero implements Animal { } class Baleia extends Mamifero { } ... Baleia b = new Baleia(); ...println(b instanceof Animal); → true
  • 31. Operadores aritméticos • + adição • - subtração • * multiplicação • / divisão • % resto ...println(17 % 5); → 2 ...println(17.0 % 5.0); → 2.0
  • 32. Operadores aritméticos int a = 8; int b = 6; int c = a + b;
  • 33. Operadores aritméticos short a = 8; short b = 6; short c = a + b; → ILEGAL
  • 34. 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
  • 35. Operadores aritméticos Solução: short a = 8; short b = 6; short c = a; c += b; → LEGAL
  • 36. Concatenação de Strings 5 + 4 + “x” → “9x” ERRO??? 5 + (4 + “x”) → “54x” “x” + 5 + 4 → “x54” ERRO??? “x” + (5 + 4) → “x9” String s = “alguma”; s += “coisa”; → “algumacoisa”
  • 37. Incremento e Decremento int x = 5; ...println(x++); → 5 ...println(x); → 6 ...println(++x); → 7 ...println(x); → 7 ...println(x--); → 7 ...println(x); → 6
  • 38. 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”
  • 39. Operador condicional →O aninhamento é feito igual if-else: cada : casa com o ? anterior mais próximo que ainda não possua um : hora < 12 ? quot;Mquot; : hora < 18 ? quot;Tquot; : quot;N“ hora > 12 ? hora < 18 ? quot;Tquot; : quot;Nquot; : quot;M”
  • 40. Operadores lógicos & | ^ ! && || • Operandos são expressões booleanas • O resultado é um booleano • Na prova não cai operadores binários!!!
  • 41. 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 && ??????){} • Cuidado com incrementos/decrementos no segundo operador.
  • 42. Operadores lógicos • Operadores sem curto-circuito –&e| • Os dois operando sempre serão avaliados
  • 43. 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
  • 44. THE END

×