implementação orientada a objetos – aula 06 conversão de tipos e métodos estáticos prof....

13
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Upload: internet

Post on 22-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Implementação Orientada a Objetos – Aula 06

Conversão de tipos e métodos estáticos

Prof. Danielle Martin

Universidade de Mogi das Cruzes2013-02

Page 2: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Conversão de tipos

Muitas vezes, na programação, nos deparamos com um valor armazenado em uma variável de um tipo, e precisamos converter esse valor em uma variável de outro tipo.

Podemos fazer algumas conversões implicitamente, e outras explicitamente.

Page 3: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Conversões implícitas

Com tipos primitivos similares, podemos converter implicitamente os tipos menores para tipos maiores:

int a = 5;float b = a; // a é igual a 5.0

short c = 3;long d = c; // d é igual a 3

Page 4: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Conversões implícitas

Para converter tipos maiores em tipos menores, temos que avisar a JVM explicitamente sobre a nossa conversão (casting). Neste caso, temos que estar cientes que pode haver perda de dados.

double a = 5.15;int b = (int) a; // b será igual a 5

int c = 12345678;short d = (short) c; // c é 24910

Page 5: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Conversões com Strings

String não é um tipo primitivo. Strings são objetos da classe String, do java.

Para converter valores numéricos armazenados em Strings, usamos métodos das Wrapper classes Integer, Long, Double, Float.

String minhaString = “21”;int valorInt = Integer.parseInt(minhaString);double valorDouble = Double.parseDouble(minhaString);

//minhaString é igual a “21”//valorInt será igual a 21//valorDouble será igual a 21.00

Page 6: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Conversões com Strings

Para o processo contrário – converter valores numéricos em String, usamos o método valueOf, da classe String.

double valorDouble = 42.31;String valorString = String.valueOf(valorDouble);

//valorDouble é igual a 42.31//valorString será igual a “42.31”

Page 7: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Métodos estáticos

Normalmente, precisamos ter uma instância (objeto) criada para podermos chamar um método da classe.

Ex:

Aluno aluno1 = new Aluno(123, 10, 8);aluno1.calcularMedia(); //calcula a média do objeto aluno1

Aluno aluno2 = new Aluno(456, 6, 3);aluno2.calcularMedia();//calcula a média do objeto aluno2

Page 8: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Métodos estáticos

Às vezes, queremos poder executar um método sem precisar criar um objeto da classe.

É possível fazer a chamada de um método sem ser a partir de um objeto?

Page 9: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Métodos estáticos

Às vezes, queremos poder executar um método sem precisar criar um objeto da classe.

É possível fazer a chamada de um método sem ser a partir de um objeto?

Sim, se o método for estático.

Page 10: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Exemplos de métodos estáticos

Os métodos destacados abaixo são estáticos, ou seja, são métodos da classe e não precisam ser chamados a partir de um objeto.

public class Aplicacao {

public static void main(String[] args) {System.out.println(“texto”);double raiz = Math.sqrt(16);int telefone = Integer.parseInt(“12345678”);

}}

Page 11: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Exemplos de métodos estáticos

public class Aplicacao {

public static void main(String[] args) {System.out.println(“texto”);double raiz = Math.sqrt(16);int telefone = Integer.parseInt(“12345678”);

}

}

Método estático daclasse Aplicacao

Método estático daclasse PrintStream

Método estático daclasse Integer

Método estático daclasse Math

Page 12: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Declaração de um método estático

public class ConversorMonetario {

public static double realToDolar(double valorReal){double valorEmDolar = valorReal * 0.449;return valorEmDolar;

}

public static double dolarToReal(double valorDolar){double valorEmReais = valorDolar * 2.226;return valorEmReais;

}

}

import java.util.Scanner;

public class Aplicacao {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in); double valor, vConv;

System.out.println(“Digite o valor em R$”);valor = scan.nextDouble();vConv = ConversorMonetario.realToDolar(valor);System.out.println(“US$ ” + vConv);

System.out.println(“Digite o valor em US$”);valor = scan.nextDouble();vConv = ConversorMonetario.dolarToReal(valor);System.out.println(“R$ ” + vConv);

}}

Para declarar um método estático, usamos o modificador static na assinatura do método.

Para chamar um método estático, usamos o nome da classe, ao invés do objeto.

Page 13: Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02

Atributos estáticos

public class ConversorMonetario {

public static final double TAXA = 0.449;

public static double realToDolar(double valorReal){ double valorEmDolar = valorReal * ConversorMonetario.TAXA; return valorEmDolar;

}

public static double dolarToReal(double valorDolar){ double valorEmReais = valorDolar * (1/ ConversorMonetario.TAXA); return valorEmReais;}

}

import java.util.Scanner;

public class Aplicacao {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in); double valor, vConv;

System.out.println(“Digite o valor em R$”);valor = scan.nextDouble();vConv = ConversorMonetario.realToDolar(valor);System.out.println(“US$ ” + vConv);

System.out.println(“Digite o valor em US$”);valor = scan.nextDouble();vConv = ConversorMonetario.dolarToReal(valor);System.out.println(“R$ ” + vConv);

}}

Podemos criar atributos estáticos, utilizando o modificador static

Para declarar constantes, usamos junto o modificador final (o valor do atributo não pode ser alterado)