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

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

Programação orientada a objetos
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Java Básico Arrays Marco Antonio, Arquiteto de Software – TJDF Atualizado: Fevereiro/2009.
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
Histórico do Java 1990 James Gosling (Sun Microsystems)
Linguagens de Programação Orientadas a Objetos
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Iniciação ao Java – Márcio F. Campos
Programação Básica em Java
Polimorfismo e Classes Abstratas Profa
Wagner Santos C. de Jesus
Membros estáticos.
Paradigmas da Programação
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Classes e objetos Arrays e Sobrecarga
Introdução a Programação JAVA
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
CRIANDO OBJETOS EM JAVA
Introdução a Computação e Cálculo Numérico
Foi criada há 22 anos, por Guido Van Rossum Por que aprender Python?
Unidade I: “Dê um mergulho rápido”
Programação Orientada a Objetos com Java
PHP Tipos de dados Constantes.
Programação I Aula 2 (Métodos)
Técnico em Informática - Senac
Prof. Daniel Aula 03.  Criar Projeto  Criar Pacote  Criando classes  Meu primeiro programa  Compilar  Comentários  Variáveis.
Operadores e Atribuições Capítulo 3
Os métodos equals() e hashCode()
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Pilhas Profa. Nádia Félix.
By Ducheno Kelly Centro de Formação São Domingos.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Linguagem II Exceções.
Wagner Santos C. de Jesus
Aula Prática 1 Monitoria IP/CC (~if669). Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é.
Programação Orientada a Objetos - Java
Linguagem de Programação C#
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação Orientada a Objetos - Java
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Linguagem I Strings.
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Módulo 9 Strings , Coleções e I/O
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Conceitos Básicos e Manipulação de Objetos
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
PROGRAMAÇÃO II – PARTE 3 Profa. Maria Augusta Constante Puget.
Introdução Sintaxe Básica da Linguagem JAVA
Laboratório de Programação II Método main Dados e Métodos de Classes.
VARIÁVEIS Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Java Básico Lab Ruddá Beltrão | Cristian Costa.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Transcrição da apresentação:

OPERADORESOPERADORES SCJP – Otimize-TI

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.)

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.

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

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); }

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. == !=

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

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

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 !=

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”); }

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”); }

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

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.

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

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

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

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

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); }

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.

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.

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

Dúvidas