capítulo 14 classes utilitárias. 2capítulo 14 – classes utilitárias classes utilitárias...

69
Capítulo 14 Classes Utilitárias

Upload: internet

Post on 17-Apr-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

Capítulo 14

Classes Utilitárias

Page 2: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

2Capítulo 14 – Classes Utilitárias

Classes Utilitárias

• Pacote java.lang

• Pacote java.text

• Pacote java.util

Page 3: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

3Capítulo 14 – Classes Utilitárias

Pacote java.lang

• Classe String

• Classes StringBuilder e StringBuffer

• Classe Math

• Classes wrappers

• Classe Object

• Classe System

Page 4: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

4Capítulo 14 – Classes Utilitárias

Classe java.lang.String

• Representa uma seqüência de quaisquer tipos de caracteres e de qualquer tamanho.

String nome = new String(“Joaquim Oliveira”); ou

String nome = “Joaquim Oliveira”;

Page 5: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

5Capítulo 14 – Classes Utilitárias

Métodos de um String

Sintaxe Resultado

frase1.length() 14

frase1.charAt(1) ‘i’

frase1.equals(frase2) false

frase1.equalsIgnoreCase(frase2) true

frase1.indexOf(“J”) 10

frase1.concat(“ versão 6”); “Linguagem Java versão 6”

frase1.replaceAll(“Java”, “Delphi”) “Linguagem Delphi”

frase1.substring(3, 5) “gu”

frase1.toLowerCase() “linguagem java”

frase1.toUpperCase() “LINGUAGEM JAVA”

Considere os Strings abaixo:String frase1 = “Linguagem Java”;String frase2 = “LINGUAGEM JAVA”;

Page 6: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

6Capítulo 14 – Classes Utilitárias

Método length()

• Retorna a quantidade de caractes contidos no String.

String nome = “Manuel da Silva”;int tamanho = nome.length();System.out.println(“Seu nome possui ” +

tamanho + “ caracteres.”);

Seu nome possui 15 caracteres

Page 7: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

7Capítulo 14 – Classes Utilitárias

Método charAt()

• Retorna o caracter na posição especificada.

String nome = “Manuel da Silva”;char letra = nome.charAt(2);System.out.println(“Letra da posição 2:” + letra);

Letra da posição 2: n

Page 8: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

8Capítulo 14 – Classes Utilitárias

Método equals()

• Verifica se o string é igual a um outro string especificado.

String a = “casa”;String b = “nova”;String c = “casanova”;System.out.println(c == a + b);System.out.println(c.equals(a + b));

falsetrue

Page 9: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

9Capítulo 14 – Classes Utilitárias

Método equalsIgnoreCase()

• Verifica se o string é igual a um outro string especificado sem diferenciar maiúsculas e minúsculas.

String frase1 = “Linguagem Java”;String frase2 = “LINGUAGEM JAVA”;System.out.println(frase1.equals(frase2));System.out.println(frase1.equalsIgnoreCase(frase2));

falsetrue

Page 10: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

10Capítulo 14 – Classes Utilitárias

Método indexOf()

• Procura dentro de si por um trecho de string especificado

String frase = “Linguagem Java”;int posicao = frase.indexOf(“Java”);System.out.println(

“A palavra Java está na posição ” + posicao);

A palavra Java está na posição 10

Page 11: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

11Capítulo 14 – Classes Utilitárias

Método concat()

• Retorna um novo String contendo o String original concatenado ao String especificado.

String frase1 = “Linguagem Java”;String frase2 = frase1.concat(“ versão 6”);System.out.println(frase1);System.out.println(frase2);

Linguagem JavaLinguagem Java versão 6

Page 12: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

12Capítulo 14 – Classes Utilitárias

Método replaceAll()

• Retorna um novo String igual ao original contendo trechos substituídos.

String frase1 = “Linguagem Java”;String frase2 = frase1.replaceAll(“Java”, “Delphi”);System.out.println(frase1);System.out.println(frase2);

Linguagem JavaLinguagem Delphi

Page 13: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

13Capítulo 14 – Classes Utilitárias

Método substring()

• Retorna um trecho do String original.

String frase = “Linguagem Java”;String trecho1 = frase.substring(10, 12);String trecho2 = frase.substring(10);System.out.println(trecho1);System.out.println(trecho2);

JaJava

Page 14: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

14Capítulo 14 – Classes Utilitárias

Método toLowerCase()

• Retorna uma cópia do String original convertido para letras minúsculas.

String frase1 = “Linguagem Java”;String frase2 = frase1.toLowerCase();System.out.println(frase2);

linguagem java

Page 15: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

15Capítulo 14 – Classes Utilitárias

Método toUpperCase()

• Retorna uma cópia do String original convertido para letras maiúsculas.

String frase1 = “Linguagem Java”;String frase2 = frase1.toUpperCase();System.out.println(frase2);

LINGUAGEM JAVA

Page 16: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

16Capítulo 14 – Classes Utilitárias

Método trim()

• Retorna uma cópia do String original excluíndo todos os caracteres não imprimíveis (espaços, tabulações, quebras de linha, etc) ao início e ao fim do String.

String frase = “ Linguagem Java ”;System.out.println(frase.trim());

Linguagem Java

Page 17: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

17Capítulo 14 – Classes Utilitárias

Características da classe String

• Uma vez criado, um String em memória não pode ser modificado.

• A concatenação ou outra operação sobre um String sempre gera a criação em memória de um outro String.

• Em operações sucessivas de concatenação e outras operações, a classe String não é a classe mais recomendada.

Page 18: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

18Capítulo 14 – Classes Utilitárias

Classes java.lang.StringBuilder e java.lang.StringBuffer• Classes auxiliares utilizadas na manipulação de

strings (concatenação e outras operações);

• Oferece maior desempenho em tarefas de concatenação ou alteração de strings;

• Possuem exatamente a mesma funcionalidade;

• A classe StringBuilder é mais performática e foi adicionada à linguagem a partir da versão 5;

• A classe StringBuffer é mais antiga e garante a sincronia em acessos multithread.

Page 19: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

19Capítulo 14 – Classes Utilitárias

Métodos do StringBuilder

StringBuilder builder = null;

builder = new StringBuilder("Linguagem Java");builder.append(" 1.4");System.out.println(builder); // Exibe “Linguagem Java 1.4”

builder = new StringBuilder("Linguagem Java");builder.delete(0, 10);System.out.println(builder); // Exibe “Java”

builder = new StringBuilder("Linguagem Java");builder.insert(10, "de programação ");System.out.println(builder); // Exibe “Linguagem de programação Java”

Page 20: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

20Capítulo 14 – Classes Utilitárias

Método append()

• Adiciona um trecho de String ao final do buffer.

StringBuilder builder;builder = new StringBuilder("Linguagem Java");builder.append(" 1.4");System.out.println(builder);

Linguagem Java 1.4

Page 21: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

21Capítulo 14 – Classes Utilitárias

Método delete()

• Remove do buffer um trecho de String.

StringBuilder builder;builder = new StringBuilder("Linguagem Java");builder.delete(0, 10);System.out.println(builder);

Java

Page 22: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

22Capítulo 14 – Classes Utilitárias

Método insert()

• Insere no buffer um trecho de String na posição especificada.

StringBuilder builder;builder = new StringBuilder("Linguagem Java");builder.insert(10, “de programação ”);System.out.println(builder);

Linguagem de programação Java

Page 23: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

23Capítulo 14 – Classes Utilitárias

Métodos em cascata

StringBuilder builder;String result;

builder = new StringBuilder("Linguagem Java");

result = builder.insert(10, “de programação ”).delete(0, 10).append(“ 1.4”).toString();

Necessário para tornar

compatível com o tipo String

Page 24: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

24Capítulo 14 – Classes Utilitárias

Exercício

• Laboratório 1

Page 25: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

25Capítulo 14 – Classes Utilitárias

A classe java.lang.Math

• Contém métodos utilitários para cálculos matemáticos;

• Não precisa (nem pode) ser instanciada;

• Todos os seus membros são estáticos.

Page 26: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

26Capítulo 14 – Classes Utilitárias

Funções MatemáticasFunção Descrição

Math.abs(a) Valor absoluto

Math.cos(a) Cosseno (a em radianos)

Math.log(a) Logarítmo neperiano

Math.max(a, b) Maior valor entre a e b

Math.min(a, b) Menor valor entre a e b

Math.pow(a, b) Potência de base a e expoente b, ou seja (ab)

Math.random() Número fracionário aleatório entre 0 e 1

Math.round(a) Arredonda o valor de a

Math.sin(a) Seno (a em radianos)

Math.sqrt(a) Raiz quadrada

Math.tan(a) Tangente (a em radianos)

Page 27: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

27Capítulo 14 – Classes Utilitárias

Método sqrt()

• Calcula a raiz quadrada do valor especificado.

double result = Math.sqrt(144);System.out.println(result);

12.0

Page 28: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

28Capítulo 14 – Classes Utilitárias

Método round()

• Arredonda um double convertendo para long.

long result = Math.round(4.97);System.out.println(result);

5

Page 29: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

29Capítulo 14 – Classes Utilitárias

Método abs()

• Converte um número para positivo.

double result1 = Math.abs(-5.37);double result2 = Math.abs(8.5);

System.out.println(result1);System.out.println(result2);

5.378.5

Page 30: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

30Capítulo 14 – Classes Utilitárias

Método ceil()

• Arredonda um número fracionário (double) sempre para cima.

double result1 = Math.ceil(8.25);double result2 = Math.ceil(-2.4);

System.out.println(result1);System.out.println(result2);

9.0-2.0

Page 31: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

31Capítulo 14 – Classes Utilitárias

Método floor()

• Arredonda um número fracionário (double) sempre para baixo.

double result1 = Math.floor(8.25);double result2 = Math.floor(-2.4);

System.out.println(result1);System.out.println(result2);

8.0-3.0

Page 32: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

32Capítulo 14 – Classes Utilitárias

Método max()

• Retorna o maior valor dentre dois números especificados.

double result = Math.max(4.97, 8.6);System.out.println(result);

8.6

Page 33: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

33Capítulo 14 – Classes Utilitárias

Método min()

• Retorna o menor valor dentre dois números especificados.

double result = Math.min(4.97, 8.6);System.out.println(result);

4.97

Page 34: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

34Capítulo 14 – Classes Utilitárias

Método pow()

• Retorna ao potência aritmética a partir de uma base e um expoente (um número elevado a outro).

double result = Math.pow(3, 4);System.out.println(result);

81.0

Page 35: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

35Capítulo 14 – Classes Utilitárias

Método random()

• Retorna um número fracionário (double) aleatório entre 0 e 1.

double result = Math.random();System.out.println(result);

0.7779996188877593

Page 36: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

36Capítulo 14 – Classes Utilitárias

Constante PI

• Constante matemática utilizada para cálculos trigonométricos.

System.out.println(Math.PI);

3.141592653589793

Page 37: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

37Capítulo 14 – Classes Utilitárias

Método sin()

• Função trigonométrica que calcula o seno de um ângulo medido em radianos.

double angulo = Math.PI / 2;System.out.println(Math.sin(angulo));

1.0

90º

Page 38: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

38Capítulo 14 – Classes Utilitárias

Método cos()

• Função trigonométrica que calcula o cosseno de um ângulo medido em radianos.

double angulo = Math.PI / 2;System.out.println(Math.cos(angulo));

0.0

Page 39: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

39Capítulo 14 – Classes Utilitárias

Método tan()

• Função trigonométrica que calcula a tangente de um ângulo medido em radianos.

double angulo = Math.PI / 3;System.out.println(Math.tan(angulo));

1.7320508075688767 ( )

60º

Page 40: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

40Capítulo 14 – Classes Utilitárias

Método toDegrees()

• Função trigonométrica que converte um ângulo em radianos para graus.

double angulo = Math.PI / 2;System.out.println(Math.toDegrees(angulo));

90.0

Page 41: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

41Capítulo 14 – Classes Utilitárias

Método toRadians()

• Função trigonométrica que converte um ângulo em graus para.

double angulo = 90;System.out.println(Math.toRadians(angulo));

1.5707963267948966 ( )

Page 42: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

42Capítulo 14 – Classes Utilitárias

Exercício

• Tabuada de potências

Crie um programa em java que calcule todas as tabuadas de potenciação de 1 a 10.

1 elevado a 1 = 11 elevado a 2 = 1. . . . . .1 elevado a 1 = 12 elevado a 1 = 22 elevado a 2 = 4. . . . . .10 elevado a 10 = 10000000000

Page 43: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

43Capítulo 14 – Classes Utilitárias

Exercício desafio

• Sorteio da Mega-sena

Crie um programa em java que exiba seis dezenas da mega-sena aleatoriamente.

Cada uma das dezenas deve ser um número inteiro entre 1 e 60.

A cada vez que o programa for executado, novas dezenas deverão ser exibidas pelo programa.

25 43 8 19 51 12

Page 44: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

44Capítulo 14 – Classes Utilitárias

Classes “wrappers” (invólucros)

• java.lang.Byte

• java.lang.Short

• java.lang.Integer

• java.lang.Long

• java.lang.Float

• java.lang.Double

• java.lang.Character

• java.lang.Boolean

Page 45: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

45Capítulo 14 – Classes Utilitárias

Classes “wrappers” (invólucros)

• Classes utilizadas para reter valores primitivos a serem tratados como objetos.

Object[] listaObjetos = {new Cliente(“João Silva”, “7836-1278”),new ContaCorrente(7871, 2500.15),new Integer(26),new Double(750.5)

}; Tipos primitivos não podem

ser inseridos aqui.

Utilize “wrappers”

Page 46: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

46Capítulo 14 – Classes Utilitárias

Autoboxing e Auto-unboxing

Integer composto1 = new Integer(10);int primitivo1 = 10;

Integer composto2 = primitivo1;int primitivo2 = composto1;

Até a versão 1.4 não era permitido

Page 47: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

47Capítulo 14 – Classes Utilitárias

Autoboxing e Auto-unboxing

Integer composto1 = new Integer(10);int primitivo1 = 10;

Integer composto2 = primitivo1;int primitivo2 = composto1;

A partir da versão 5, é aceito

Autoboxing

Auto-unboxing

Page 48: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

48Capítulo 14 – Classes Utilitárias

Conversão de texto

• Além disto, as classes wrappers possuem métodos estáticos utilizados na conversão de string.

String t = “34.5”;

byte b = Byte.parseByte(t);short s = Short.parseShort(t);int i = Integer.parseInt(t);float f = Float.parseFloat(t);double d = Double.parseDouble(t);

Page 49: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

49Capítulo 14 – Classes Utilitárias

A classe java.lang.Object

• Principal classe da linguagem Java;

• É a classe mãe de todas as outras classes;

• Possui métodos de base que são automaticamente herdados por todas as classes que existem.

• Dentre os principais métodos encontrar herdados podemos citar o método toString() que pode ser sobrescrito por quaisquer classes tornando-as mais compreensíveis à aplicação

Page 50: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

50Capítulo 14 – Classes Utilitárias

O método toString()public class Funcionario {

private int matricula;private String nome;private String cargo;. . . . . .. . . . . .public String toString() {

return matricula + “ – “ + nome;}

}

Page 51: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

51Capítulo 14 – Classes Utilitárias

O método toString()

Funcionario f1Funcionario f2;

f1 = new Funcionario(345, “Manuel”, “Padeiro”);f2 = new Funcionario(829, “Joaquim”, “Quitandeiro”);

System.out.println(“Funcionário A: ” + f1);System.out.println(“Funcionário B: ” + f2);

Funcionário A: 345 – ManuelFuncionário B: 829 – Joaquim

Page 52: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

52Capítulo 14 – Classes Utilitárias

A classe java.lang.System

• Membro out:– Representa a saída padrão de texto ao

usuário (geralmente o prompt de comando);

– Seus principais métodos são print() e println() utilizados para exibição de dados.

Page 53: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

53Capítulo 14 – Classes Utilitárias

A classe java.lang.System

• Método exit()

– Força o encerramento da aplicação Java

if (resultadoOk) {

// Saída com sucessoSystem.exit(0);

} else {

// Encerra avisando que ocorreu algum problemaSystem.exit(1);

}

Page 54: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

54Capítulo 14 – Classes Utilitárias

A classe java.lang.System

• Método getProperty()

– Captura informações de ambiente do sistema operacional ou do próprio JVM

String nomeOS = System.getProperty(“os.name”);

String versaoJava = System.getProperty(“java.version”);

Page 55: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

55Capítulo 14 – Classes Utilitárias

A classe java.lang.SystemPrincipais Propriedades do Java

java.version Versão do Java

java.vendor Fabricante

java.class.path Class path (Relação de pastas de classes)

java.io.tmpdir Diretório temporário do SO

os.name Nome do SO

os.version Versão do SO

file.separator Separador de diretório ("/" no UNIX)

path.separator Separador em listas (":" no UNIX)

line.separator Separador de linhas ("\n" no UNIX)

user.name Nome do usuário do SO

user.home Diretório “home” do usuário

user.dir Diretório corrente

Page 56: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

56Capítulo 14 – Classes Utilitárias

Pacotes java.util e java.text

• Classe java.util.Date

• Classe java.util.Calendar

• Classe java.text.SimpleDateFormat

• Classe java.text.DecimalFormat

Page 57: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

57Capítulo 14 – Classes Utilitárias

Classes java.util.Date e java.text.SimpleDateFormat

• java.util.Date – Representa uma data que pode ser formatada para exibição.

• java.text.SimpleDateFormat – Representa um formato de apresentação de data escolhido pelo programador

Page 58: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

58Capítulo 14 – Classes Utilitárias

Classes java.util.Date e java.text.SimpleDateFormat

Date agora = new Date();

SimpleDateFormat mascara =new SimpleDateFormat(“HH:mm:ss”);

System.out.println(“São exatamente ” +mascara.format(agora));

São exatamente 22:43:15

Page 59: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

59Capítulo 14 – Classes Utilitárias

SimpleDateFormatCaracteres de Formatação

Símbolo Descriçãoy Ano

M Mês

d Dia do mês (1-31)

h Hora (1-12)

H Hora (0-23)

m Minuto

s Segundo

Símbolo DescriçãoS Milissegundo

E Dia da semana

D Dia do ano

w Semana do ano

W Semana do mês

a Marcador AM/PM

Page 60: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

60Capítulo 14 – Classes Utilitárias

Classe java.util.Calendar

• Também representa uma data

• Padronizada para diversos calendários regionais (Gregoriano, Budista, Japonês, outros)

• Tipicamente utilizada para efetuar cálculos com datas

Page 61: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

61Capítulo 14 – Classes Utilitárias

Calendar – Exemplo

/* Captura a data de hoje no calendário do sistema */Calendar c = Calendar.getInstance();

/* Altera c para 2 anos no futuro */c.add(Calendar.YEAR, 2);

/* Altera c retrocedendo 2 meses */c.add(Calendar.MONTH, -2);

/* Captura o dia do mês do calendário c */int dia = c.get(Calendar.DAY_OF_MONTH);

/* Altera o calendário c para a data 13/08/2004 18:30:15 */c.set(2004, 7, 13, 18, 30, 15); // O Mês é base zero

Page 62: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

62Capítulo 14 – Classes Utilitárias

Calendar – CamposCampos utilizados pelos métodos get e add:

Campo Descrição

Calendar.YEAR Ano

Calendar.MONTH Mês (0-11)

Calendar.DAY_OF_MONTH Dia do mês (1-31)

Calendar.DAY_OF_WEEK Dia da semana (1-Dom até 7-Sáb)

Calendar.DAY_OF_YEAR Dia do ano (1-365)

Calendar.HOUR Hora (1-12)

Calendar.HOUR_OF_DAY Hora(0-23)

Calendar.MINUTE Minuto

Calendar.SECOND Segundo

Calendar.MILLISECOND Milissegundo

Page 63: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

63Capítulo 14 – Classes Utilitárias

Calendar – Outro exemplo

/* Captura a data de hoje no calendário do sistema */Calendar c = Calendar.getInstance();

/* Avança 90 dias */c.add(Calendar.DAY_OF_MONTH, 90);

/* Converte de Calendar para Date */Date d = c.getTime();

/* Cria uma máscara para a data */SimpleDateFormat mascara = new SimpleDateFormat(“dd/MM/yyyy”);

/* Exibe a data no formato desejado */System.out.println(“Daqui a 90 dias será ” + mascara.format(d));

Page 64: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

64Capítulo 14 – Classes Utilitárias

CalendarDiferença entre datas/* Cria dois calendários */Calendar nasc = Calendar.getInstance();Calendar hoje = Calendar.getInstance();

/* Altera o calendário nasc para o dia do nascimento */nasc.set(1988, 0, 15, 12, 10, 30); // 15/01/1998 12:10:30

/* Obtem a representação interna dos calendários em milissegundos */long intNasc = nasc.getTimeInMillis();long intHoje = hoje.getTimeInMillis();

/* Calcula a idade (em milissegundos) */long idade = intHoje – intNasc;

/* Exibe a idade */System.out.println(“Você possui ” + idade + “ milissegundos de idade”);

Page 65: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

65Capítulo 14 – Classes Utilitárias

Classe java.text.DecimalFormat

• É utilizada na formatação de números

// Recebe o salario como doubledouble salario = 1230.5;

// Cria máscara de exibiçãoDecimalFormat mascara = new DecimalFormat(“#,##0.00”);

// Aplica máscara sobre o salario para exibirSystem.out.println(“Salário: ” + mascara.format(salario));

Page 66: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

66Capítulo 14 – Classes Utilitárias

DecimalFormatCaracteres de Formatação

Símbolo Descrição0 Dígito de exibição obrigatória

# Dígito de exibição opcional

. Define a posição do separador decimal.

, Define a posição do separador de milhares

% Utilizado ao fim da formatação para indicar que o número deverá ser exibido em formato percentual.

Page 67: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

67Capítulo 14 – Classes Utilitárias

Exercício

• Crie um programa em Java que calcule quantos dias faltam para o natal do ano corrente.

Page 68: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

68Capítulo 14 – Classes Utilitárias

Classes estudas

• java.lang

– String– StringBuilder– StringBuffer– Math– Byte– Short– Integer– Long– Float– Double

– Character– Boolean– Object– System

• java.util

– Date– Calendar

• java.text

– SimpleDateFormat– DecimalFormat

Page 69: Capítulo 14 Classes Utilitárias. 2Capítulo 14 – Classes Utilitárias Classes Utilitárias Pacote java.lang Pacote java.text Pacote java.util

69Capítulo 14 – Classes Utilitárias

Conhecendo novas classes nativas do Java

http://download.oracle.com/javase/6/docs/api