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

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

Operadores e Atribuições Capítulo 3

Apresentações semelhantes


Apresentação em tema: "Operadores e Atribuições Capítulo 3"— Transcrição da apresentação:

1 Operadores e Atribuições Capítulo 3
Certificação Java Operadores e Atribuições Capítulo 3 Cássio Melo

2 Operadores em Java

3 Operadores em Java Inversão de bits Não existe && ou || para bits!
deslocamento OU - exclusivo Deslocamento sem extensão de sinal

4 Operadores em Java

5 Operadores em Java

6 Operadores de Atribuição em Java
Atribuição sobre bits

7 Operadores Aritméticos Unários e Binários

8 Operadores Aritméticos Unários
Executam operações em um único operando Incrementam, decrementam ou mudam o sinal Ex.: Quando usados em byte, char ou short, são primeiro convertidos em int (Numeric Promotion) O uso de prefix e postfix são diferentes em atribuições X = 10 Y = x++; y = 10

9 Operadores Aritméticos Binários
Executam operações entre um par de operandos Adição ( + ), subtração( - ), multiplicação( * ), divisão( / ) e módulo ( % ) Casos especiais: Operações entre tipos diferentes Divisão por zero Operações com módulo Operações que lançam exceções Operações que resultam em overflow/underflow

10 Operadores Aritméticos Binários
Atenção!!! Cuidado com o operador aritmético + e o operador de concatenação de Strings + Se um dos operandos é um String, os outros são convertidos em String Ex.: “2.4” resulta em uma String “2.42.6” Se o operando é um objeto, o método toString() dele será invocado Operação entre tipos diferentes: Numeric Promotion Regras: Se um operando é um double, os outros são convertidos em double Se um operando é um float, os outros são convertidos em float Se um operando é um long, os outros são convertidos em long Se qualquer outro tipo, ambos são convertidos em int

11 Operadores Aritméticos Binários
Divisão Inteira Se a divisão é entre ints o resultado é um int, com a parte fracionária truncada Ex.: Divisão por zero Entre um int e zero, é lançado um ArithmeticException Entre um double ou float e zero o resultado é POSITIVE_INFINITY ou NEGATIVE_INFINITY Se o “sinal” de zero for negativo, o sinal do resultado é invertido - somente em pontos flutuantes

12 Operadores Aritméticos Binários
Operações com módulo ( % ) Resto da divisão do primeiro operando com o segundo Diferente de C/C++, Java permite operação de módulo entre tipos de ponto flutuante Ex.: Se o primeiro operando é um int e o segundo operando for zero, é lançado um ArithmeticException Se o primeiro operando é um ponto flutuante e o segundo operando for zero, o resultado é um NaN * Lembrando que o sinal do modulo é o mesmo do primeiro operando * A formula correspondente ao % é: x – ((int) (x/y)*y)

13 Operadores Aritméticos Binários
Operações que lançam exceções A única exceção causada durante operações aritméticas é a ArithmeticException Divisão por zero Resto de um número por Zero Exceções nunca são lançadas em operações com ponto flutuante

14 Operadores Aritméticos Binários
Overflow e Underflow Ocorre quando o resultado de uma operação é maior (overflow) ou menor (underflow) que o número de bytes permitidos pelo tipo Java descarta a parte mais significativa dos bits que não cabem no tipo Não haverá questões para calcular se um determinado número causará overflow/underflow ou não!

15 Operações em Bits

16 Operações em Bits Operações Aritméticas:
Inversão ( ~ ), E ( & ), OU ( | ), OU-exclusivo ( ^ ) Operam bit-a-bit Se os tipos forem diferentes, ocorrerá Numeric Promotion Mostrar o que é bit-a-bit e exemplos

17 Operações em Bits Operações de Deslocamento (Shift):
Deslocamento para esquerda ( << ), deslocamento para a direita aritmético( >> ), deslocamento para a direita lógico ( >>> ) Para tipos diferentes, Numeric promotion A parte deslocada que não couber no tipo é descartada

18 Operações em Bits Ex.:

19 Operadores de Comparação

20 Operadores de Comparação
Comparadores Relacionais: Menor-que ( < ), Maior-que ( > ), Menor ou igual que ( <= ), Maior ou igual que ( >= ) Funcionam como na matemática Qualquer operação relacional com um NaN resultará em false Mostrar o que é bit-a-bit e exemplos

21 Operadores de Comparação
Comparadores de Igualdade: Igual ( == ), Diferente ( != ) Funcionam tanto com tipos primitivos quanto com referências de objetos Mais uma vez, Numeric Promotion Mostrar o que é bit-a-bit e exemplos

22 Operadores de Comparação
O operador == Compara referências de objetos! Neste caso, s1 = “abcd” e s2 = “abcd”, mas s1 != s2 !! Qual o resultado do código a seguir?

23 Operador instanceof Determina se a referência para um objeto (operador da esquerda) é instância de uma classe, interface ou tipo de array especificado pelo operador da direita Não pode ser usado com tipos primitivos Retorna false se o segundo operando eh null

24 Operador instanceof Qual o resultado do código a seguir?
Apenas o ultimo eh false

25 Operadores Lógicos

26 Operadores Lógicos Operadores booleanos ! (NÃO), & (E), | (OU), ^ (OU-exclusivo) Operadores “curtos”: && (E), || (OU) Se primeiro operando do || for true, não valida o segundo operando Se primeiro operando do && for false, não valida o segundo operando

27 Operadores de Atribuição

28 Operadores de Atribuição
Todos os operadores com exceção do += e do = são usados em tipos primitivos Operadores de atribuição são right-associative, todos os outros são left-associative

29 Operadores de Atribuição
Qual dos dois códigos gera erro de compilação? Por que? O erro está na classe Cast2 !! Como há Numeric promotion, precisamos de um cast! Corresponde a: b = (byte) (b + 3)

30 O Operador Cast (tipo)

31 O Operador Cast (tipo) Usado para mudar um tipo numérico pra outro ou mudar a referência de um objeto para um tipo compatível Widening conversion e Narrowing conversion

32 O Operador Cast (tipo)

33 O Operador Cast (tipo) O seguinte código pode ser executado?
Falta Cast (String) !! pois elementAt() retorna um Object e s2 é um String!

34 O Operador Ternário ? :

35 O Operador Ternário ? : Expressa uma sentença condicional (também chamado operador condicional)

36 O Operador Ternário ? : Analise o código a seguir:

37 Ordem de Precedência e Associatividade em Java

38 Ordem de Precedência e Ordem de Validação em Java
Todos os operadores binários são left-associative, exceto o operador de atribuição ( = ) Os operadores são executados de acordo com a ordem de precedência Parênteses () são usados para alterar a precedência

39 Ordem de Precedência e Ordem de Validação em Java

40 Ordem de Precedência e Ordem de Validação em Java
Qual o valor de s, no final? A resposta é s = “abc9” Mas essa questão é muito mais difícil do que qualquer outra desse tipo no teste! Então, se você conseguiu entendê-la, você vai conseguir fazer a do teste muito bem! Resp.: abc9

41 Sumário do Capítulo 3

42 Exercício para Casa! Resolver todas as questões do capítulo 3, pág. 55
Até a próxima!

43 Declarações e Controle de Acesso Capítulo 4
Certificação Java Declarações e Controle de Acesso Capítulo 4 Cássio Melo

44 Declarações e Controle de Acesso
Objetivos: Como varíaveis são iniciadas e declaradas


Carregar ppt "Operadores e Atribuições Capítulo 3"

Apresentações semelhantes


Anúncios Google