implementação orientada a objetos – aula 06 conversão de tipos e métodos estáticos prof....
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc181497959413d8f4159/html5/thumbnails/13.jpg)
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)