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 Java

19,608 views

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

Published in: Technology, Business
  • Be the first to comment

Operadores Java

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

×