Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Operadores

1,985 views

Published on

  • Be the first to comment

  • Be the first to like this

Operadores

  1. 1. Operadores Raphael Marques
  2. 2. Objetivo • Operadores de atribuição: =, +=, -=, *=, /= • Operadores aritméticos: +, -, *, /, %, ++, -- • Operadores relacionais: <, <=, >, >=, ==, != • Operador instanfeof • Operadores lógicos: &, |, ^, !, &&, || • Operador condicional: ?:
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. Operadores relacionais < <= > >= == != • Retornam sempre um valor booleano. • <, <=, >, >= – apenas tipos numéricos • ==, != – todos tipos inclusive referência
  13. 13. Operadores de igualdade == != • Comparam números, booleanos e referências • Os operandos devem ser compatíveis
  14. 14. Operadores de igualdade if(false == 'a'){} ILEGAL if(65 == 'A'){} LEGAL if(1 == quot;Aquot;){} ILEGAL if(1 == new Integer(1)){} LEGAL
  15. 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. 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?
  17. 17. Operadores de igualdade Integer a = 10; Integer b = 10; System.out.println(a==b); Qual a saída?
  18. 18. Operadores de igualdade Integer a = 10; Integer b = 10; System.out.println(a==b); → true Qual a saída?
  19. 19. Operadores de igualdade Integer a = new Integer(10); Integer b = new Integer(10); System.out.println(a==b); → false Qual a saída?
  20. 20. Operadores de igualdade Integer a = new Integer(5) + 5; Integer b = 10; System.out.println(a==b); → true Qual a saída?
  21. 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. 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. 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. 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. 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. 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. 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. 28. Operador instanceof interface Animal { } class Manifero implements Animal { } class Baleia extends Mamifero { } ... Baleia b = new Baleia(); ...println(b instanceof Animal); → true
  29. 29. Operadores aritméticos • + adição • - subtração • * multiplicação • / divisão • % resto ...println(17 % 5); → 2 ...println(17.0 % 5.0); → 2.0
  30. 30. Operadores aritméticos int a = 8; int b = 6; int c = a + b;
  31. 31. Operadores aritméticos short a = 8; short b = 6; short c = a + b; → ILEGAL
  32. 32. Operadores aritméticos short a = 8; short b = 6; short c = a; c += b; → LEGAL
  33. 33. 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”
  34. 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. 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. 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. 37. Operadores lógicos & | ^ ! && || • Operandos são expressões booleanas • O resultado é um booleano • Na prova não cai operadores binários!!!
  38. 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 && ??????){}
  39. 39. Operadores lógicos • Operadores sem curto-circuito –&e| • Os dois operando sempre serão avaliados
  40. 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
  41. 41. THE END

×