Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

Slides:



Advertisements
Apresentações semelhantes
Programação orientada a objetos
Advertisements

Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Programação Orientada a Objetos – Parte II
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 2 Tipos de Dados.
Tratamento de Exceções
Prof. Thiago Pereira Rique
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005.
Programação Básica em Java
Polimorfismo e Classes Abstratas Profa
Expressões, controle de fluxo, wrappers e strings Profa
Disciplina: AAM Profa. Ana Watanabe vol.3
Wagner Santos C. de Jesus
Membros estáticos.
Tipos de dados, valores literais e variáveis
Paradigmas da Programação
Introdução à linguagem de programação JAVA5
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Classes e objetos Arrays e Sobrecarga
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Linguagem de Programação JAVA
CRIANDO OBJETOS EM JAVA
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Linguagem técnica de programação I Java
PROGRAMAÇÃO I UNIDADE 2.
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Operadores e Atribuições Capítulo 3
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
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.
Wagner Santos C. de Jesus
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Linguagem de Programação C#
Tipos de Dados Operadores
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.
Prof. Gilberto Irajá Müller
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Funções Matemáticas e de String
Estrutura de Controle em JAVA
Classes Abstratas e Interface
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.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Laboratório I Mateus Raeder. Mateus Raeder – maio de 2010 Arrays  Variável: armazena apenas um valor  Como criar em uma única variável, espaço para.
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)
Aula Prática 3 14/04/2010 Conversão de Tipos. Conversão de tipos Definição – Refere-se a processo de converter uma entidade de um tipo para outro. Tipos.
Exercícios Laboratório. Inicio Escreva (“Olá Mundo!”) Fim static void main (string[] args) { Console.WriteLine (“Olá Mundo!”); }
Laboratório I Mateus Raeder. Mateus Raeder – abril de 2010 Expressões booleanas  Tipo boolean -Tipo de dado primitivo -Possui os valores: true e false.
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.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
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 Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
VARIÁVEIS Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
1 Programação – JAVA Unidade - 4 Arrays e Strings Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Linguagem de Programação – Aula 02 Prof. Me. Ronnison Reges Vidal.
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:

Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

Programação II – Prof. Mateus Raeder Sumário Conversão de tipos –Casting –Atribuição –String –Promoção Numérica –Invocação de Método –Boxing / Unboxing

Programação II – Prof. Mateus Raeder Conversão em Java Toda expressão escrita em Java tem um tipo que pode ser deduzido da estrutura da expressão e dos tipos de seus valores literais, variáveis e métodos. Se escrevermos uma expressão em um contexto em que o tipo da expressão não é apropriado, pode acontecer: –Erro em tempo de compilação –O contexto faz uma conversão implícita (quando possível) para um tipo aceitável pelo contexto

Programação II – Prof. Mateus Raeder Conversão de Tipos Casting –Conversão realizada de maneira explícita através do operador de cast –Permite qualquer tipo de conversão em tempo de compilação, podendo gerar exceções public static void main(String args[]){ float f = 12.5f; int i; //i = f; ERRO DE COMPILAÇÃO. “Possible loss of precision” //Operador de cast necessário i = (int) f; System.out.println(“Valor de f: ” + f); System.out.println(“Valor de i: ” + i); }  12.5  12

Programação II – Prof. Mateus Raeder Conversão de Tipos Casting –Conversão realizada de maneira explícita através do operador de cast –Permite qualquer tipo de conversão em tempo de compilação, podendo gerar exceções public static void main(String args[]){ float f = 12.7f; int i; //i = f; ERRO DE COMPILAÇÃO. “Possible loss of precision” //Operador de cast necessário i = (int) f; System.out.println(“Valor de f: ” + f); System.out.println(“Valor de i: ” + i); }  12.7  12

Programação II – Prof. Mateus Raeder Conversão de Tipos Atribuição –Ocorre quando o tipo de uma expressão é convertido para o tipo da variável que recebe seu valor int intOper1 = 2; int intOper2 = 3; float resultFloat = 0.0f; //resultado armazenado em uma variável do tipo float //(conversão implícita) resultFloat = intOper1 + intOper2;

Programação II – Prof. Mateus Raeder Conversão de Tipos String –Possibilita que qualquer tipo de dado seja representado na forma de String int resultInt = 0; float resultFloat = 0.0f; System.out.println(“Resultado da operação (int): ” + resultInt); System.out.println(“Resultado da operação (float): ” + resultFloat);

Programação II – Prof. Mateus Raeder Conversões com Strings Conversões de tipos primitivos de dados para Strings String s = String.valueOf (tipo); –onde tipo pode ser uma variável do tipo: int, long, float, double, boolean. Conversão de String para tipos primitivos (Wrappers): int i = Integer.parseInt(String); long l = Long.parseLong(String); double d = Double.parseDouble(String);

Programação II – Prof. Mateus Raeder Conversão de Tipos Promoção Numérica –Converte implicitamente um os operandos de uma expressão para um tipo em comum, de tal forma que a expressão possa ser operada int intOper1 = 2; float floatOper1 = 3.6f; float resultFloat = 0.0f; //operador intOper1 é implicitamente tratado como float resultFloat = intOper1 + floatOper1;

Programação II – Prof. Mateus Raeder Conversão de Tipos Promoção numérica –Conversão automática byte  short  int  long  float  double //operador intOper1 é implicitamente tratado como float resultFloat = intOper1 + floatOper1; //resultInt = intOper1 + floatOper1; //ERRO DE COMPILAÇÃO: resultado é float //necessita cast resultInt = (int) (intOper1 + floatOper1);

Programação II – Prof. Mateus Raeder Conversão de Tipos Promoção numérica –De maior para menor precisão necessita o uso de casting double d = 9997; int i = (int) d; double d = 99.97; int i = (int) d; informações podem ser perdidas i tem valor 9997i tem valor 99

Programação II – Prof. Mateus Raeder Conversão de Tipos Invocação de métodos –Parâmetro real é implicitamente convertido para o tipo do parâmetro formal //parâmetros do método: float op1 e float op2 public static float soma(float op1, float op2){ return op1 + op2; } public static void main(String args[]){ int opInt = 5; float opFloat = 2.7f; //parâmetros passados: int opInt e float opFloat System.out.println(“Resultado da soma: ” + soma(opInt, opFloat)); }

Programação II – Prof. Mateus Raeder Conversões entre tipos numéricos Ponto flutuante –em java, todo literal de ponto flutuante é double, a não ser que seja explicitamente declarado como float float x = 3.14; float x = 3.14f; Erro de compilação: possible loss of precision

Programação II – Prof. Mateus Raeder Conversões entre tipos numéricos Para operações numéricas: –Se um dos operandos é do tipo double, o outro será tratado como um double no escopo da operação; –Senão, se um dos operandos for float, o outro será tratado como float ; –Senão, se um dos operandos é do tipo long, o outro será tratado como long. –Senão, os operandos serão tratados como inteiros.

Programação II – Prof. Mateus Raeder Conversões entre tipos numéricos Por exemplo: double d1 = 0.2; float f1 = 0.3f; soma = d1 + f1; Qual o tipo de dado de para receber a soma acima? double soma = d1 + f1;

Programação II – Prof. Mateus Raeder Conversões entre tipos numéricos Char –é necessário o uso de cast para converter inteiro em char –char pode ser considerado inteiro sem o uso de casting. int i1 = 100; char c1 = 'c'; char c2 = (char) i1; int i2 = c1; System.out.println(c2); System.out.println(i2); 99 d Tabela ASCII

Programação II – Prof. Mateus Raeder Conversões entre tipos numéricos

Programação II – Prof. Mateus Raeder Conversões entre tipos numéricos char c1 = 71; char c2 = 82; char c3 = 69; char c4 = 77; char c5 = 73; char c6 = 79; System.out.println(c1 + c2 + c3 + c4 + c5 + c6); System.out.println(c1 +""+ c2 +""+ c3 +""+ c4 +""+ c5 +""+ c6); Qual a saída do trecho abaixo? 451 GREMIO Resposta:

Programação II – Prof. Mateus Raeder Conversões entre tipos numéricos Converter para o valor exato: int i = 3; char c = '1'; // converte char em inteiro. Ex: '1' -> 1 int res1 = Character.digit (c, 10); System.out.println ("char -> int = " + res1); // saída: char -> int = 1 // converte inteiro em char. Ex: 1 -> '1' char res2 = Character.forDigit (i, 10); System.out.println ("int -> char = " + res2); //saída: int -> char = 3

Programação II – Prof. Mateus Raeder Conversão de Tipo Primitivo para seu Wrapper Conversão realizada entre os objetos numéricos (Integer, Float) e o correspondente tipo primitivo de dado (int, float). Tipo primitivo de dado = tipo básico A partir da versão Java 5.0 é automática ( implícita ) Autoboxing : –Converte tipo básico para objeto numérico –Ex: de int para Integer Unboxing : –Converte objeto numérico para tipo básico –Ex: de Integer para int

Programação II – Prof. Mateus Raeder Conversão de Tipo Primitivo para seu Wrapper public static Float soma(Float f1, Float f2){ return f1 + f2; } public static void main(String args[]){ Integer obInt1 = 5; Float obFloat1 = 4.6f; Integer obInt2 = new Integer(7); Float obFloat2 = new Float(67.3f); float f = soma(obFloat1, obFloat2); Float obFloat3 = soma(obFloat1, obFloat2); System.out.println(“Valor de f (primitivo): ” + f); System.out.println(“Valor de obFloat3 (wrapper): ”+ obFloat3); System.out.println(“Soma utilizando float: ” + soma(f, f)); } //autoboxing -> int p/ Integer //autoboxing -> float p/ Float //unboxing -> Float p/ float

Programação II – Prof. Mateus Raeder Tipos de conversão em Java Conversão de Casting : converte o tipo de uma expressão para um tipo explicitamente especificado pelo operador cast. Permite qualquer tipo de conversão em tempo de compilação, podendo gerar exceção em tempo de execução. –int i = (int)12.5f; Conversão de atribuição : converte o tipo de uma expressão para o tipo da variável. Ex: –float f = i; Conversão de String : permite que qualquer tipo seja convertido em uma String: –System.out.println("(int)12.5f = " + i);

Programação II – Prof. Mateus Raeder Tipos de conversão em Java Promoção numérica : converte um dos operandos de uma expressão para um tipo em comum de tal forma que a expressão possa ser operada: –f = f * i; Conversão em invocação de método : aplicado para argumento na chamada de métodos e construtores. Faz a mesma conversão que a conversão de atribuição faz. –double d = Math.sin(f);