implementação orientada a objetos – aula 06 conversão de tipos e métodos estáticos prof....
TRANSCRIPT
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
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.
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
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
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
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”
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
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?
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.
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”);
}}
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
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.
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)