A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.

Apresentações semelhantes


Apresentação em tema: "OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem."— Transcrição da apresentação:

1 OPERADORESOPERADORES SCJP – Otimize-TI

2 Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem alguns operadores que já vêm sobrecarregado.) Não podem ser sobrecarregados (Existem alguns operadores que já vêm sobrecarregado.)

3 Operadores de Atribuição • Ao se atribuir um valor a um primitivo, o TAMANHO faz a diferença. (Certifique-se de saber quando uma conversão implícita irá ocorrer, quando a conversão explícita é necessária, e quando poderão ocorrer cortes. • Ao se atribuir um valor a um primitivo, o TAMANHO faz a diferença. (Certifique-se de saber quando uma conversão implícita irá ocorrer, quando a conversão explícita é necessária, e quando poderão ocorrer cortes. • Lembre-se de que uma variável de referência não é um objeto e sim uma forma de chegar a um objeto. • Ao se atribuir um valor a uma variável de referência, o tipo faz a diferença. Lembre-se das regras para supertipos, subtipos e arrays.

4 Operadores de Atribuição Compostos += -= *= /= y = y – 6;  y -= 6; x = x + 2 * 5;  x += 2 * 5; y = y – 6;  y -= 6; x = x + 2 * 5;  x += 2 * 5; De qual maneira será interpretada a função x *= 2 + 5; x = x * (2 + 5) x = (x * 2) + 5 De qual maneira será interpretada a função x *= 2 + 5; x = x * (2 + 5) x = (x * 2) + 5  CORRETO

5 Operadores de Comparação >= == != Sempre resulta em um Booleano Mas também pode ser atribuído diretamente a um tipo booleano primitivo. Sempre resulta em um Booleano Mas também pode ser atribuído diretamente a um tipo booleano primitivo. Class CompareTest { public static void main (String [] args) { boolean b = 100 > 99; System.out.println(“O valor de b é “ + b); } Class CompareTest { public static void main (String [] args) { boolean b = 100 > 99; System.out.println(“O valor de b é “ + b); }

6 Operadores de Igualdade Compara dois itens semelhantes Retorna um booleano Quatro itens que podem ser testados: Números Caracteres Tipos booleanos primitivos Variáveis de referência de objeto O operador examina o valor da variável. Em outras palavras, o padrão de bits. Compara dois itens semelhantes Retorna um booleano Quatro itens que podem ser testados: Números Caracteres Tipos booleanos primitivos Variáveis de referência de objeto O operador examina o valor da variável. Em outras palavras, o padrão de bits. == !=

7 Igualdade de variáveis de referência Apontam para o mesmo objeto JButton a = new Button (“exit”); JButton b = a; Apontam para o mesmo objeto JButton a = new Button (“exit”); JButton b = a; Import java.awt.Button Class CompareReference { public static void main (String [] args){ Button a = new Button (“Exit”); Button b = new Button (“Exit”); Button c = a; System.out.println(“a faz referência com b ?” + (a == b)); System.out.println(“a faz referência com c ?” + (a == c)); } Import java.awt.Button Class CompareReference { public static void main (String [] args){ Button a = new Button (“Exit”); Button b = new Button (“Exit”); Button c = a; System.out.println(“a faz referência com b ?” + (a == b)); System.out.println(“a faz referência com c ?” + (a == c)); } RESULTADO: a faz referência com b ? false a faz referência com c ? true RESULTADO: a faz referência com b ? false a faz referência com c ? true

8 Igualdade de tipos primitivos Class ComparePrimitives { public static void main (String [] args) { System.out.println(“a é igual a a ? “ + (‘a’ == ‘a’)); System.out.println(“a é igual a b ? “ + (‘a’ == ‘b’)); System.out.println(“5 é diferente de 6 ? “ + (5 != 6)); System.out.println(“5.0 == 5L ? “ + (5.0 == 5L)); System.out.println(“true é igual a false? “ + (true == false)); } Class ComparePrimitives { public static void main (String [] args) { System.out.println(“a é igual a a ? “ + (‘a’ == ‘a’)); System.out.println(“a é igual a b ? “ + (‘a’ == ‘b’)); System.out.println(“5 é diferente de 6 ? “ + (5 != 6)); System.out.println(“5.0 == 5L ? “ + (5.0 == 5L)); System.out.println(“true é igual a false? “ + (true == false)); } a é igual a a ? true a é igual a b ? False 5 é diferente de 6 ? True 5.0 == 5L ? True true é igual a false ? false a é igual a a ? true a é igual a b ? False 5 é diferente de 6 ? True 5.0 == 5L ? True true é igual a false ? false RESULTADO

9 Igualdade para Enums Depois que você declarou um enum, ele não pode ser expandido em tempo de execução. Poderá ser usado tanto “==“ quanto “equals” para comparar as constantes enum Depois que você declarou um enum, ele não pode ser expandido em tempo de execução. Poderá ser usado tanto “==“ quanto “equals” para comparar as constantes enum classEnumEqual{ enum Color {RED, BLUE} // ; é opcional public static void main (string [] args) { Color c1 = Color.RED; Color c2 = Color.RED; if (c1 == c2) { System.out.println (“==“); } if (c1.equal (c2)) { System.out.println (“!=“); } }} Saída: == e != classEnumEqual{ enum Color {RED, BLUE} // ; é opcional public static void main (string [] args) { Color c1 = Color.RED; Color c2 = Color.RED; if (c1 == c2) { System.out.println (“==“); } if (c1.equal (c2)) { System.out.println (“!=“); } }} Saída: == e !=

10 Operador de comparação instanceof É usado somente com variáveis de referência de objetos Usado para verificar se um objeto é de um tipo específico. Realiza o teste “É-UM”. Prontege o programa contra a tentativa de tentativa de uma conversão inválida. É usado somente com variáveis de referência de objetos Usado para verificar se um objeto é de um tipo específico. Realiza o teste “É-UM”. Prontege o programa contra a tentativa de tentativa de uma conversão inválida. public static void main (String [] args) { String s = new String (“OTIMIZE-TI”); if (s instanceof String) { System.out.println(“s é uma variável do tipo String”); } public static void main (String [] args) { String s = new String (“OTIMIZE-TI”); if (s instanceof String) { System.out.println(“s é uma variável do tipo String”); }

11 Operador de comparação instanceof O exemplo mostra a validação de um objeto para um de seus subtipos antes de tentar uma converão “redutora”. class A { } class B extends A { public static void main (String [] args) { A myA = new B(); m2 (myA); } public static void m2 (A a) { if (a instanceof B) ((B)a).doBstuff(); //convertendo uma referência } //A em uma referência B public static void doBstuff() { System.out.println (“‘a’ é uma instancia de B”); } class A { } class B extends A { public static void main (String [] args) { A myA = new B(); m2 (myA); } public static void m2 (A a) { if (a instanceof B) ((B)a).doBstuff(); //convertendo uma referência } //A em uma referência B public static void doBstuff() { System.out.println (“‘a’ é uma instancia de B”); }

12 Observação para o Exame Instância de uma interface. Uma implementação indireta ocorre quando uma das superclasses do objeto implementa uma interface,mas a própria classe da instância não o faz inteface Sun { } class A implements Sun { } class B extends A { }... A a = new A(); B b = new B(); Resultados: a instanceof Sun b instanceof A b instanceof Sun //implementado indiretamente inteface Sun { } class A implements Sun { } class B extends A { }... A a = new A(); B b = new B(); Resultados: a instanceof Sun b instanceof A b instanceof Sun //implementado indiretamente

13 Observação para o Exame Lembre-se que os Arrays são objetos, mesmo quando armazenam tipos primitivos. int [] nums = new int [3]; If (nums instaceof Object) { } // O resultado é true Ver tabela página 168. int [] nums = new int [3]; If (nums instaceof Object) { } // O resultado é true Ver tabela página 168.

14 Operadores aritméticos + - x / São usados da maneira padrão. int x = 5 * 3 int y = x – 4; System.out.println(“x – 4 é = “ + y); // exibirá 11 São usados da maneira padrão. int x = 5 * 3 int y = x – 4; System.out.println(“x – 4 é = “ + y); // exibirá 11

15 Operador Resto % % Divide o operando esquerdo pelo direito com o resultado sendo o resto. class MathTest { public static void main (String [] args) { int x = 15; int y = x % 4; System.out.println (“Resto: ” + y); } Resultado: Resto: 3 Divide o operando esquerdo pelo direito com o resultado sendo o resto. class MathTest { public static void main (String [] args) { int x = 15; int y = x % 4; System.out.println (“Resto: ” + y); } Resultado: Resto: 3

16 Operador de concatenação de string + + O sinal de adição também pode ser usado para concatenar duas Strings. String texto = “concatenar” + “ “ + “string”; O sinal de adição também pode ser usado para concatenar duas Strings. String texto = “concatenar” + “ “ + “string”; Exemplo: String a = “String”; int b = 3; int c = 7; System.out.println (a + b + c); Qual o resultado -String10 -String37 - Erro de compilação Exemplo: String a = “String”; int b = 3; int c = 7; System.out.println (a + b + c); Qual o resultado -String10 -String37 - Erro de compilação  CORRETO

17 Operador de acréscimo e decrécimo Prefixo - Sufixo O operador é inserido antes (prefixo) ou depois (sufixo) de uma variável para alterar o valor. Se for prefixo, a operação de acréscimo ou decréscimo deverá ser realizada antes de sua utilização. Caso seja sufixo, deve-se ser utilizado para após sofrer a alteração. class MathTest { static int players = 0; public static void main (String [] args) { System.out.println(“Resultado: ”players++); System.out.println(players); System.out.println(++players); }} Resultado: Prefixo - Sufixo O operador é inserido antes (prefixo) ou depois (sufixo) de uma variável para alterar o valor. Se for prefixo, a operação de acréscimo ou decréscimo deverá ser realizada antes de sua utilização. Caso seja sufixo, deve-se ser utilizado para após sofrer a alteração. class MathTest { static int players = 0; public static void main (String [] args) { System.out.println(“Resultado: ”players++); System.out.println(players); System.out.println(++players); }} Resultado: 0 1 2

18 Operador condicional Operador ternário (3 operandos). Semelhante ao “if”. Ao invés de executar um bloco de código se o resultado for true, ele atribui um valor à variável. Exemplo: class Salary { public static void main (String [] args) { int numero = 3; String status = (numero<4)?”O número é menor que 4” :”O número é maior que 4”; System.out.println(status); } Operador ternário (3 operandos). Semelhante ao “if”. Ao invés de executar um bloco de código se o resultado for true, ele atribui um valor à variável. Exemplo: class Salary { public static void main (String [] args) { int numero = 3; String status = (numero<4)?”O número é menor que 4” :”O número é maior que 4”; System.out.println(status); }

19 Operadores Lógicos & | && || Operadores Lógicos & | && || -Operadores Lógicos -Operadores Lógicos de Abreviação: && (AND) e || (OR) -Diferença entre os tipos: No operador &&, os espera-se que ambos sejam “true”. Se o primeiro não resultar em “true”, a operação não terá chances de passar pela validação. Então ele não verifica o segundo lado da expressão. Com o operador ||, funciona no mesmo sentido, mas com a diferença que, ao menos um dos lados da expressão seja “true”. Então, se logo no primeiro lado da expressão ele encontrar “true”. Ele não validará o segundo lado, pois já é suficiente para passar pela avaliação. Já nos operadores & e | (não abreviação), ele fará a validação dos dois lados da expressão. Não importando o seu resultado. -Operadores Lógicos -Operadores Lógicos de Abreviação: && (AND) e || (OR) -Diferença entre os tipos: No operador &&, os espera-se que ambos sejam “true”. Se o primeiro não resultar em “true”, a operação não terá chances de passar pela validação. Então ele não verifica o segundo lado da expressão. Com o operador ||, funciona no mesmo sentido, mas com a diferença que, ao menos um dos lados da expressão seja “true”. Então, se logo no primeiro lado da expressão ele encontrar “true”. Ele não validará o segundo lado, pois já é suficiente para passar pela avaliação. Já nos operadores & e | (não abreviação), ele fará a validação dos dois lados da expressão. Não importando o seu resultado.

20 Operadores Lógicos & | && || Operadores Lógicos & | && || -Exemplo de validação: int z = 5; If (++ z > 5 || ++z > 6) z++; //z=7 depois deste código. int z = 5; If (++ z > 5 | ++z > 6) z++; //z=8 depois deste código. -Exemplo de validação: int z = 5; If (++ z > 5 || ++z > 6) z++; //z=7 depois deste código. int z = 5; If (++ z > 5 | ++z > 6) z++; //z=8 depois deste código.

21 Operadores Lógicos ^ ! Operadores Lógicos ^ ! - ^ (OR EXCLUSIVO – XOR) - ! (inversão booleana) -Relaciona-se com operadores de não abreviação. (sempre avalia ambos os operandos) Exemplo: public static void main(String[] args) { System.out.println("xor :" + ((2 3))); } RESULTADO: xor: false Ou seja: true + true = false true + false = true false + true = true false + false = false - ^ (OR EXCLUSIVO – XOR) - ! (inversão booleana) -Relaciona-se com operadores de não abreviação. (sempre avalia ambos os operandos) Exemplo: public static void main(String[] args) { System.out.println("xor :" + ((2 3))); } RESULTADO: xor: false Ou seja: true + true = false true + false = true false + true = true false + false = false

22 Dúvidas


Carregar ppt "OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem."

Apresentações semelhantes


Anúncios Google